Curated list of awesome articles and resources to learn and practice software architecture, patterns and principles. This repository will be updated continuously, keep yourself up to date .
I created this repository to share a set of links that I found valuable and inspiring and I share them with others to improve our knowledge together ✌️.
🚀 Go ahead to the official web page here: 🌐 https://awesome-architecture.com
Contents
- Software Architecture
- Actor Model Architecture
- Algorithms
- Clean Architecture
- Onion Architecture
- Hexagonal Architecture
- Vertical Slice Architecture
- Event Driven Architecture
- Service Oriented Architecture
- Domain Driven Design
- Data Driven Design
- CQRS
- Microservices
- Modular Monolith
- Architectural Design Principles
- Design Patterns
- Cloud Design Patterns
- Cloud Best Practices
- Cloud Native
- Platform as a Service
- Infrastructure as a Service
- DevOps
- Reverse Proxy - Load Balancing
- Service Discovery And Registry
- Service Mesh
- Object Oriented Design
- Systems Design
- Scaling
- Back Pressure
- Clean Code
- Abstraction
- Design Best Practices
- Anti Patterns
- Eventual Consistency
- Messaging
- Distributed Transactions
- Distributed Locking
- Eventual Consistency
- RESTful API Design
- gRPC
- Caching
- Functional Programming
- Concurrency
- Sharding
- Refactoring
- NoSQL
- Relational Database
- Microsoft Azure Cloud
- Modeling
- Open Source
- Code Review
- Interview
- Architecture Decision Records (ADR)
- Micro-Frontend
- Others
Note: Bellow contents is not complete yet and it's in progress, and I will complete the descriptions over the time, but you are feel free to contribute this part.
Software Architecture
Topic | Description |
---|---|
Software Architecture | Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. |
Actor Model Architecture
Topic | Description |
---|---|
Actor Model Architecture | The Actor Model is a programming paradigm in which the basic unit of execution is the actor. In the Actor Model, an actor does work by using messages to express actions upon a system or other actors within the given system |
Akka .NET | Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET. |
Microsoft Orleans | Orleans is a cross-platform framework for building robust, scalable distributed applications. |
ProtoActor | Ultra fast distributed actors for Go, C# and Java/Kotlin. |
Algorithms
Topic | Description |
---|---|
Algorithms | An algorithm is a procedure used for solving a problem or performing a computation. |
Clean Architecture
Topic | Description |
---|---|
Clean Architecture | The Clean Architecture is the system architecture guideline proposed by Robert C. Martin (Uncle Bob) derived from many architectural guidelines like Hexagonal Architecture, Onion Architecture, etc... |
Onion Architecture
Topic | Description |
---|---|
Onion Architecture | The Onion architecture, introduced by Jeffrey Palermo, and it is a form of layered architecture and we can visualize these layers as concentric circles. |
Hexagonal Architecture
Topic | Description |
---|---|
Hexagonal Architecture | The Hexagonal Architecture or Ports and Adapters architecture, introduced by Alistair Cockburn and it's an architectural pattern that allows input by users or external systems to arrive into the Application at a Port via an Adapter, and allows output to be sent out from the Application through a Port to an Adapter. |
Vertical Slice Architecture
Topic | Description |
---|---|
Vertical Slice Architecture | The vertical slice architecture is a technique that helps us build maintainable applications by separating the application around features or vertical slices . |
Event Driven Architecture
Topic | Description |
---|---|
Event Driven Architecture | Event-driven architecture is a software design pattern in which decoupled applications can asynchronously publish and subscribe to events via an event broker. |
Service Oriented Architecture
Topic | Description |
---|---|
Service Oriented Architecture | TODO... |
Domain Driven Design
Topic | Description |
---|---|
Domain Driven Design | TODO... |
Value Objects | TODO... |
Aggregation | TODO... |
Anemic Domain Model | TODO... |
Rich Domain Model | TODO... |
Domain Model | TODO... |
Domain Service | TODO... |
Application Service | TODO... |
Domain Events | TODO... |
Integration Events | TODO... |
Bounded Context | TODO... |
Infrastructure | TODO... |
Tactical Design Patterns | TODO... |
Strategic Design Patterns | TODO... |
Mappings | TODO... |
Domain Primitives | TODO... |
Enum | TODO... |
Exception and Validation | TODO... |
Data Driven Design
Topic | Description |
---|---|
Data Driven Design | TODO... |
CQRS
Topic | Description |
---|---|
CQRS | TODO... |
Microservices
Topic | Description |
---|---|
Microservices | TODO... |
Communication | TODO... |
Composite UI | TODO... |
Service Boundaries | TODO... |
Testing | TODO... |
API Gateway | TODO... |
API Gateway - Ambassador | TODO... |
API Gateway - Kong | TODO... |
API Gateway - Ocelot | TODO... |
Observability | TODO... |
Observability - Distributed Tracing | TODO... |
Observability - Monitoring | TODO... |
Observability - Metrics | TODO... |
Observability - Diagnostics | TODO... |
Observability - Logging | TODO... |
Observability - CorrelationId | TODO... |
Observability - Tools - EFK | TODO... |
Observability - Tools - ELK | TODO... |
Observability - Tools - Fluent Bit | TODO... |
Observability - Tools - FluentD | TODO... |
Observability - Tools - Loki | TODO... |
Resiliency | TODO... |
Resiliency - Idempotency | TODO... |
Resiliency - High Availability | TODO... |
Security | TODO... |
Security - Key Vault | TODO... |
Tools - CAP | TODO... |
Tools - Dapr | TODO... |
Tools - Mass Transit | TODO... |
Tools - NService Bus | TODO... |
Tools - SteelToe | TODO... |
Tools - Tye | TODO... |
Modular Monolith
Topic | Description |
---|---|
Modular Monolith | TODO... |
Architectural Design Principles
Topic | Description |
---|---|
Architectural Design Principles | TODO... |
CAP | TODO... |
Cohesion | TODO... |
Coupling | TODO... |
Architectural Design Principles | TODO... |
Cross Cutting Concerns | TODO... |
Dependency Inversion | TODO... |
Dry | TODO... |
Encapsulation | TODO... |
Fail Fast Design Principles | TODO... |
Composition Over Inheritance | TODO... |
Grasp | TODO... |
Interface Segregation | TODO... |
Inversion Control | TODO... |
KIIS | TODO... |
Open Closed Principles | TODO... |
Persistence Ignorance | TODO... |
Single Responsibility | TODO... |
Solid | TODO... |
Yagni | TODO... |
Design Patterns
Topic | Description |
---|---|
Design Patterns | TODO... |
Adapter Pattern | TODO... |
AutoPilot | TODO... |
Builder | TODO... |
Chain of Responsibility | TODO... |
Command Message Pattern | TODO... |
Command Pattern | TODO... |
Decorator Patterns | TODO... |
Factory Patterns | TODO... |
Mediator Patterns | TODO... |
Observer Patterns | TODO... |
Query-Object Patterns | TODO... |
Repository Pattern | TODO... |
REPR | TODO... |
Service Locator | TODO... |
Singleton | TODO... |
Specification Pattern | TODO... |
State Pattern | TODO... |
Strategy Patterns | TODO... |
Transaction-Script Patterns | TODO... |
Cloud Design Patterns
Topic | Description |
---|---|
Cloud Design Patterns | TODO... |
Ambassador Pattern | TODO... |
Anti Corruption Layer Pattern | TODO... |
BFF | TODO... |
Bulkhead Pattern | TODO... |
Circuit Breaker | TODO... |
Exactly One Delivery | TODO... |
Gateway Aggregation | TODO... |
Gateway Pattern | TODO... |
Inbox Patterns | TODO... |
Outbox Patterns | TODO... |
Saga Patterns | TODO... |
Sidecar Patterns | TODO... |
Strangler Fig Patterns | TODO... |
Cloud Best Practices
Topic | Description |
---|---|
Cloud Best Practices | TODO... |
Cloud Native
Topic | Description |
---|---|
Cloud Native | TODO... |
Platform as a Service
Topic | Description |
---|---|
Heroku | TODO... |
Netlify | TODO... |
OpenShift | TODO... |
Rancher | TODO... |
Infrastructure as a Service
Topic | Description |
---|---|
Infrastructure as a Service | TODO... |
Nomad | TODO... |
Pulumi | TODO... |
Terraform | TODO... |
DevOps
Topic | Description |
---|---|
Containerd | TODO... |
Docker | TODO... |
Docker - Docker Compose | TODO... |
Kubernetes | TODO... |
Kubernetes - Services | TODO... |
Kubernetes - Deployment Strategies | TODO... |
Kubernetes - Deployment Tools - ArgoCd | TODO... |
Kubernetes - Deployment Tools - Flux | TODO... |
Kubernetes - Deployment Tools - Helm | TODO... |
Kubernetes - Deployment Tools - Jenkins | TODO... |
Kubernetes - Deployment Tools - Kubernetes Operator | TODO... |
Kubernetes - Deployment Tools - Kustomize | TODO... |
Kubernetes - Ingress Controller | TODO... |
Kubernetes - Ingress Controller - Nginx | TODO... |
Kubernetes - Ingress Controller - Traefik | TODO... |
Kubernetes - Other Tools - K3s | TODO... |
Kubernetes - Other Tools - Kind | TODO... |
Kubernetes - Other Tools - Tilt | TODO... |
Reverse Proxy - Load Balancing
Topic | Description |
---|---|
Load Balancing | TODO... |
Reverse Proxy | TODO... |
Envoy | TODO... |
HAProxy | TODO... |
MetalLB | TODO... |
Nginx | TODO... |
Traefik | TODO... |
Yarp | TODO... |
Service Discovery And Registry
Topic | Description |
---|---|
Service Discovery | TODO... |
Consul | TODO... |
Eureka | TODO... |
Service Mesh
Topic | Description |
---|---|
Service Mesh | TODO... |
Istio | TODO... |
Linkerd | TODO... |
Maesh | TODO... |
Object Oriented Design
Topic | Description |
---|---|
Object Oriented Design | TODO... |
System Design
Topic | Description |
---|---|
System Design | TODO... |
Consistent Hash | TODO... |
Scaling
Topic | Description |
---|---|
Scaling | TODO... |
Back Pressure
Topic | Description |
---|---|
Back Pressure | TODO... |
Clean Code
Topic | Description |
---|---|
Clean Code | TODO... |
Abstraction
Topic | Description |
---|---|
Abstraction | TODO... |
Design Best Practices
Topic | Description |
---|---|
Design Best Practices | TODO... |
12 Factor | TODO... |
Strongly Typed Ids | TODO... |
Thin Controllers | TODO... |
Anti Patterns
Topic | Description |
---|---|
Anti Patterns | TODO... |
Big Ball of Mud | TODO... |
Code Smells | TODO... |
God Object | TODO... |
Leaky Abstractions | TODO... |
Partial Object | TODO... |
Static Cling | TODO... |
Eventual Consistency
Topic | Description |
---|---|
Eventual Consistency | TODO... |
Messaging
Topic | Description |
---|---|
Messaging | TODO... |
Kafka | TODO... |
Rabbitmq | TODO... |
Nats | TODO... |
Change Data Capture (CDC) | TODO... |
Documentation | TODO... |
Distributed Transactions
Topic | Description |
---|---|
Distributed Transactions | TODO... |
Distributed Locking
Topic | Description |
---|---|
Distributed Locking | TODO... |
Eventual Consistency
Topic | Description |
---|---|
Eventual Consistency | TODO... |
RESTful API Design
Topic | Description |
---|---|
RESTful API Design | TODO... |
gRPC
Topic | Description |
---|---|
gRPC | TODO... |
Caching
Topic | Description |
---|---|
Caching | TODO... |
Functional Programming
Topic | Description |
---|---|
Functional Programming | TODO... |
Concurrency
Topic | Description |
---|---|
Concurrency | TODO... |
Sharding
Topic | Description |
---|---|
Sharding | TODO... |
Refactoring
Topic | Description |
---|---|
Refactoring | TODO... |
NoSQL
Topic | Description |
---|---|
NoSQL | TODO... |
MongoDB | TODO... |
RavenDB | TODO... |
Cosmosdb | TODO... |
Documentdb | TODO... |
Relational Database
Topic | Description |
---|---|
Relational Database | TODO... |
Postgres | TODO... |
Microsoft Azure Cloud
Topic | Description |
---|---|
Microsoft Azure Cloud | TODO... |
AKS | TODO... |
Azure API Management | TODO... |
Azure App Service Plan | TODO... |
Azure App Service | TODO... |
Azure Arc | TODO... |
Azure Configuration | TODO... |
Azure Functions | TODO... |
Azure Load Balancing | TODO... |
Azure Logic App | TODO... |
Azure Resource | TODO... |
Azure Resource Manager | TODO... |
Azure SQL Server | TODO... |
Azure Security - Azure Key Vault | TODO... |
Azure Security - Azure Active Directory | TODO... |
Azure Messaging | TODO... |
Azure Messaging - Azure Service Bus | TODO... |
Azure Messaging - Azure Event Grid | TODO... |
Azure Messaging - Azure Event Hub | TODO... |
Azure Messaging - Azure Queue | TODO... |
Azure Messaging - Azure Web Pub Sub | TODO... |
Azure NoSQL | TODO... |
Azure NoSQL - CosmosDB | TODO... |
Azure Storage | TODO... |
Azure Storage - Blob Storage | TODO... |
Azure Storage - File Storage | TODO... |
Azure Storage - Queue Storage | TODO... |
Azure Storage - Table Storage | TODO... |
Modeling
Topic | Description |
---|---|
Modeling | TODO... |
Architecture Diagram | TODO... |
Class Diagram | TODO... |
Component Diagram | TODO... |
Conceptual Modeling | TODO... |
Data Model Notations | TODO... |
Domain Stroytelling | TODO... |
ER Diagrams | TODO... |
Event Modeling | TODO... |
Event Storming | TODO... |
Logical Modeling | TODO... |
Open Source
Topic | Description |
---|---|
Open Source | TODO... |
Code Review
Topic | Description |
---|---|
Code Review | TODO... |
Interview
Topic | Description |
---|---|
Interview | TODO... |
Architecture Decision Records (ADR)
Topic | Description |
---|---|
Architecture Decision Records (ADR) | TODO... |
Micro-Frontend
Topic | Description |
---|---|
Micro-Frontend | TODO... |
Others
Topic | Description |
---|---|
Others | TODO... |
🙏 Special Thanks
Thanks to the authors of the links for their valuable content, I gather them in one place for finding topics to read easier.
⭐ Support
If you like, feel free to ⭐ this repository, it helps out :)
Thanks a bunch for supporting me!
🤝 Contribution
Contributions are always welcome! Please take a look at the contribution guidelines pages first.
Thanks to all contributors, you're awesome and this wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources.