Organizing and structuring software through patterns, decisions, and verified design rules.
- Reference Implementations
- Design Patterns
- Architecture Decision Records (ADR)
- System Design
- Design Documentation
- Design Verification
- Real-World Architecture Examples
- Books
- Community & Conferences
- ThreeDotsLabs/watermill - Go library for building event-driven applications with Pub/Sub, CQRS, and middleware support.
- ThreeDotsLabs/wild-workouts-go-ddd-example - Production-ready Go example combining Clean Architecture, CQRS, and gRPC with detailed blog series.
- kgrzybek/modular-monolith-with-ddd - Full Modular Monolith with DDD, CQRS, and integration events in C# — reference project.
- CodelyTV/php-ddd-example - PHP DDD skeleton with Hexagonal Architecture, CQRS, and event bus using Symfony.
- Serverless Patterns Collection - AWS-curated serverless architecture patterns with deployable SAM/CDK templates.
- Azure Cloud Design Patterns - Microsoft's 30+ cloud patterns for availability, data management, and resilience.
- AWS Cloud Design Patterns - Amazon's prescriptive guidance covering decomposition, messaging, and data patterns.
- Microservices Patterns - Chris Richardson's comprehensive catalog of microservice patterns including Saga, API Gateway, and CQRS.
- patchlevel/event-sourcing - Modern PHP Event Sourcing library with snapshots, projections, and Doctrine integration.
- Event Modeling - Visual method for designing event-driven systems with a timeline of commands, events, and views.
- Cell-Based Architecture - WSO2's reference architecture for building resilient distributed systems with isolated cells.
- Refactoring.Guru - Visual catalog of all 23 GoF patterns with UML diagrams and code in 10+ languages.
- DesignPatternsPHP - All known design patterns in PHP 8.1+ with real-world examples, UML diagrams, and tests.
- kamranahmedse/design-patterns-for-humans - Guide explaining design patterns with real-world analogies, not academic jargon.
- iluwatar/java-design-patterns - Collection of GoF, enterprise, and architectural patterns implemented in Java.
- tmrts/go-patterns - Idiomatic Go implementations of creational, structural, behavioral, and concurrency patterns.
- Source Making — Design Patterns - Comprehensive reference with UML diagrams, code examples, and anti-pattern explanations.
- Christopher Okhravi — Design Patterns - Video series walking through each GoF pattern with clear explanations and real-world context.
- faif/python-patterns - Collection of design patterns and idioms implemented in Python with concise examples.
- joelparkerhenderson/architecture-decision-record - Collection of ADR templates, examples, and best practices from real projects.
- npryce/adr-tools - Bash-based CLI for creating, superseding, and managing ADR documents in a project.
- adr/madr - Markdown Any Decision Records — lean template capturing context, decision, and consequences.
- Documenting Architecture Decisions - Michael Nygard's original blog post that started the ADR movement and defined the format.
- adr.github.io - Central hub of the ADR GitHub organization aggregating tools, templates, and examples.
- log4brains - Docs-as-code knowledge base that auto-generates a searchable static site from ADR files.
- adr/e-adr - Embedded Architectural Decision Records for capturing decisions directly in source code.
- Kubernetes KEPs - Real-world architecture decision process at scale — Kubernetes Enhancement Proposals.
- Spotify ADR Practice - Spotify engineering on when, why, and how to write effective ADRs.
- GOV.UK RFCs - UK Government Digital Service architecture decisions — excellent public sector ADR example.
- GitHub Actions Toolkit ADRs - Architecture Decision Records from GitHub's official Actions toolkit.
- Rust RFCs - Rust language design decisions captured as RFCs — one of the best public RFC processes.
- Next.js RFCs - Vercel's public RFC discussions for Next.js architectural changes and new features.
- Flutter Design Docs - Flutter's public design document process for major architectural decisions.
- donnemartin/system-design-primer - Comprehensive resource covering scalability, caching, load balancing, and architecture trade-offs.
- ByteByteGo - Alex Xu's system design course with visual deep dives into distributed systems internals.
- karanpratapsingh/system-design - Free system design course covering networking, databases, caching, and real-world case studies.
- High Scalability - Real architecture case studies from Netflix, Twitter, and other high-traffic systems.
- API Design Guide by Google - Google's resource-oriented API design standard used across all Google Cloud APIs.
- Microsoft REST API Guidelines - Microsoft's battle-tested guidelines for consistent, developer-friendly RESTful APIs.
- Use The Index, Luke - In-depth SQL indexing guide teaching developers how databases execute queries efficiently.
- RabbitMQ Tutorials - Official tutorials covering work queues, pub/sub, routing, and RPC messaging patterns.
- Apache Kafka Documentation - Complete reference for Kafka's distributed streaming platform, partitioning, and consumer groups.
- Rate Limiting Strategies - Google Cloud guide covering token bucket, leaky bucket, and sliding window algorithms.
- DDIA Notes - Detailed community notes on Kleppmann's DDIA covering replication, partitioning, and consensus.
- C4 Model - Simon Brown's four-level model (Context, Container, Component, Code) for architecture visualization.
- D2 Language - Modern declarative diagramming language with auto-layout that compiles to SVG and PNG.
- Mermaid - JavaScript diagramming tool rendering flowcharts, sequence diagrams from Markdown syntax.
- Diagrams as Code - Draw AWS, Azure, GCP, and Kubernetes architecture diagrams in Python with provider icons.
- dependency-cruiser - Validate and visualize JavaScript/TypeScript module dependencies against architecture rules.
- Ilograph - Interactive architecture diagrams with multi-perspective views and drill-down navigation.
- Terrastruct - Commercial platform for creating interactive architecture diagrams powered by D2.
- phparkitect/arkitect - Define PHP architecture rules with expressive DSL — enforce layer dependencies in CI.
- pestphp/pest-plugin-arch - Fluent architecture testing for Laravel/Pest —
expect()->toUseNothing()style assertions. - TNG/ArchUnit - Industry-standard Java library for checking architecture constraints as unit tests.
- TNG/ArchUnitNET - .NET port of ArchUnit for enforcing architecture rules in C# projects.
- fdaines/arch-go - Architecture testing for Go — validate package dependencies, naming, and function rules.
- LemonAppDev/konsist - Kotlin architecture linter enforcing coding conventions, project structure, and dependency rules.
- Fitness Function-Driven Development - ThoughtWorks article on using automated fitness functions to guide architecture evolution.
- Spotify System Model - How Spotify visualizes 2000+ microservices using Backstage and the C4 model.
- Netflix Microservices Architecture - How Netflix built and open-sourced their microservice infrastructure with Spring Boot.
- Uber Domain-Oriented Microservices - How Uber evolved from monolith to 4000+ microservices with domain-oriented architecture.
- Figma Multiplayer Architecture - How Figma built real-time collaboration with CRDTs and operational transforms.
- Slack Real-Time Messaging - How Slack built Flannel, an edge cache handling millions of concurrent WebSocket connections.
- GitHub Moving to Microservices - How GitHub re-architected push processing for better reliability and performance.
- Stripe's Approach to API Design - How Stripe designs backward-compatible APIs at scale with versioning and careful evolution.
- Discord Architecture - How Discord migrated from Cassandra to ScyllaDB to store trillions of messages.
- Shopify Modular Monolith - How Shopify deconstructed their monolith into components while staying on a single deployment.
- Cloudflare Workers Architecture - How Cloudflare built Pingora, their custom Rust proxy replacing Nginx.
- Domain-Driven Design — Eric Evans - The foundational "Blue Book" defining ubiquitous language, bounded contexts, and strategic design.
- Implementing Domain-Driven Design — Vaughn Vernon - Practical "Red Book" bridging DDD theory to working code with Aggregates and Event Sourcing.
- Learning Domain-Driven Design — Vlad Khononov - Modern, accessible DDD introduction connecting strategic and tactical patterns to real projects.
- Clean Architecture — Robert C. Martin - Principles for structuring software so business rules remain independent of frameworks and databases.
- Designing Data-Intensive Applications — Martin Kleppmann - Essential deep dive into distributed systems, replication, partitioning, and stream processing.
- Building Microservices — Sam Newman - Comprehensive guide to microservice decomposition, communication, and deployment strategies.
- Patterns of Enterprise Application Architecture — Martin Fowler - Classic catalog of enterprise patterns (Unit of Work, Repository, Data Mapper) still relevant today.
- Software Architecture: The Hard Parts — Neal Ford et al. - Decision framework for distributed architecture trade-offs like data ownership and service granularity.
- A Philosophy of Software Design — John Ousterhout - Concise guide to reducing complexity through deep modules and strategic interface design.
- Fundamentals of Software Architecture — Richards & Ford - Comprehensive overview of architecture styles, characteristics, and the architect's soft skills.
- Architecture Patterns with Python — Percival & Gregory - Hands-on DDD, event-driven architecture, and TDD patterns applied in Python with working code.
- Software Architecture Monday - Mark Richards' weekly YouTube series breaking down architecture concepts in 10-minute episodes.
- Martin Fowler's Blog - Decades of essential writing on refactoring, microservices, and enterprise architecture patterns.
- InfoQ — Architecture & Design - Curated articles, conference talks, and trend reports on software architecture.
- Technology Radar - ThoughtWorks' quarterly opinionated guide to emerging tools, techniques, and platforms.
- DDD Europe - Premier European conference on Domain-Driven Design with workshops and keynotes.
- QCon - International conference featuring practitioner talks on architecture and engineering culture.
- GOTO Conferences - Conference series with talks from industry leaders on modern software development practices.
- Software Architecture subreddit - Active Reddit community for discussing architecture patterns, trade-offs, and career advice.
Contributions welcome! Read the contribution guidelines first.