/awesome-software-architecture

A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Software Architecture
build-status awesome license

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

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.