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
- 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.
Topic | Description |
---|---|
Software Architecture | Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. |
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. |
Topic | Description |
---|---|
Algorithms | An algorithm is a procedure used for solving a problem or performing a computation. |
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... |
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. |
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. |
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 . |
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. |
Topic | Description |
---|---|
Service Oriented Architecture | TODO... |
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... |
Topic | Description |
---|---|
Data Driven Design | TODO... |
Topic | Description |
---|---|
CQRS | TODO... |
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... |
Topic | Description |
---|---|
Modular Monolith | TODO... |
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... |
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... |
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... |
Topic | Description |
---|---|
Cloud Best Practices | TODO... |
Topic | Description |
---|---|
Cloud Native | TODO... |
Topic | Description |
---|---|
Heroku | TODO... |
Netlify | TODO... |
OpenShift | TODO... |
Rancher | TODO... |
Topic | Description |
---|---|
Infrastructure as a Service | TODO... |
Nomad | TODO... |
Pulumi | TODO... |
Terraform | TODO... |
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... |
Topic | Description |
---|---|
Load Balancing | TODO... |
Reverse Proxy | TODO... |
Envoy | TODO... |
HAProxy | TODO... |
MetalLB | TODO... |
Nginx | TODO... |
Traefik | TODO... |
Yarp | TODO... |
Topic | Description |
---|---|
Service Discovery | TODO... |
Consul | TODO... |
Eureka | TODO... |
Topic | Description |
---|---|
Service Mesh | TODO... |
Istio | TODO... |
Linkerd | TODO... |
Maesh | TODO... |
Topic | Description |
---|---|
Object Oriented Design | TODO... |
Topic | Description |
---|---|
System Design | TODO... |
Consistent Hash | TODO... |
Topic | Description |
---|---|
Scaling | TODO... |
Topic | Description |
---|---|
Back Pressure | TODO... |
Topic | Description |
---|---|
Clean Code | TODO... |
Topic | Description |
---|---|
Abstraction | TODO... |
Topic | Description |
---|---|
Design Best Practices | TODO... |
12 Factor | TODO... |
Strongly Typed Ids | TODO... |
Thin Controllers | TODO... |
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... |
Topic | Description |
---|---|
Eventual Consistency | TODO... |
Topic | Description |
---|---|
Messaging | TODO... |
Kafka | TODO... |
Rabbitmq | TODO... |
Nats | TODO... |
Change Data Capture (CDC) | TODO... |
Documentation | TODO... |
Topic | Description |
---|---|
Distributed Transactions | TODO... |
Topic | Description |
---|---|
Distributed Locking | TODO... |
Topic | Description |
---|---|
Eventual Consistency | TODO... |
Topic | Description |
---|---|
RESTful API Design | TODO... |
Topic | Description |
---|---|
gRPC | TODO... |
Topic | Description |
---|---|
Caching | TODO... |
Topic | Description |
---|---|
Functional Programming | TODO... |
Topic | Description |
---|---|
Concurrency | TODO... |
Topic | Description |
---|---|
Sharding | TODO... |
Topic | Description |
---|---|
Refactoring | TODO... |
Topic | Description |
---|---|
NoSQL | TODO... |
MongoDB | TODO... |
RavenDB | TODO... |
Cosmosdb | TODO... |
Documentdb | TODO... |
Topic | Description |
---|---|
Relational Database | TODO... |
Postgres | TODO... |
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... |
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... |
Topic | Description |
---|---|
Open Source | TODO... |
Topic | Description |
---|---|
Code Review | TODO... |
Topic | Description |
---|---|
Interview | TODO... |
Topic | Description |
---|---|
Architecture Decision Records (ADR) | TODO... |
Topic | Description |
---|---|
Micro-Frontend | TODO... |
Topic | Description |
---|---|
Others | TODO... |
Thanks to the authors of the links for their valuable content, I gather them in one place for finding topics to read easier.
If you like, feel free to β this repository, it helps out :)
Thanks a bunch for supporting me!
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.