awesome-software-design
github.com/QDenka/awesome-software-design ↗Organizing and structuring software through patterns, decisions, and verified design rules
Use this list with your AI agent
Add the Context Awesome MCP server to Claude, Cursor, or any MCP client, then ask:
"Show me design patterns resources from awesome-software-design"
Installation instructions →What's inside
Decision Records (ADR/RFC)
- adr/adr-manager
Web-based interface for creating, editing, and managing Architecture Decision Records.
- adr/e-adr
Embedded Architectural Decision Records for capturing decisions directly in source code.
- adr.github.io
Central hub of the ADR GitHub organization aggregating tools, templates, and examples.
- 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.
- Flutter Design Docs
Flutter's public design document process for major architectural decisions.
Books
- A Philosophy of Software Design — John Ousterhout
Concise guide to reducing complexity through deep modules and strategic interface design.
- Architecture Patterns with Python — Percival & Gregory
Hands-on DDD, event-driven architecture, and TDD patterns applied in Python with working code.
- Balancing Coupling in Software Design — Vlad Khononov
Three-dimensional coupling model (strength, distance, volatility) with practical guidance for controlling dependencies.
- Building Microservices — Sam Newman
Comprehensive guide to microservice decomposition, communication, and deployment strategies.
- 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.
API & Interface Design
- 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.
Architecture Verification (CI Rules / Fitness Functions)
- arch-go/arch-go
Architecture testing for Go with configurable rule sets for dependencies, naming, and layering constraints.
- dependency-cruiser
JavaScript/TypeScript module dependency validation against configurable architecture rules.
- Fitness Function-Driven Development
ThoughtWorks article on using automated fitness functions to guide architecture evolution.
- LemonAppDev/konsist
Kotlin architecture linter enforcing coding conventions, project structure, and dependency rules.
- LukasNiessen/ArchUnitTS
TypeScript port of ArchUnit for enforcing architecture rules with CI integration.
- pestphp/pest-plugin-arch
Fluent architecture testing for Laravel/Pest —
Documentation as Code
- 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.
- Diagrams as Code
Draw AWS, Azure, GCP, and Kubernetes architecture diagrams in Python with provider icons.
- Ilograph
Interactive architecture diagrams with multi-perspective views and drill-down navigation.
- Mermaid
JavaScript diagramming tool rendering flowcharts, sequence diagrams from Markdown syntax.
- PlantUML
Widely-adopted diagrams-as-code tool for UML/C4 and architecture visuals with strong IDE and CI integration.
Implementation Patterns & Reference Code
- Christopher Okhravi — Design PatternsDesign Patterns
Video series walking through each GoF pattern with clear explanations and real-world context.
- CodelyTV/php-ddd-example
PHP DDD skeleton with Hexagonal Architecture, CQRS, and event bus using Symfony.
- ddd-crew/ddd-starter-modelling-process
Step-by-step DDD modelling process guide from discovery to bounded context design.
- DesignPatternsPHPDesign Patterns
All known design patterns in PHP 8.1+ with real-world examples, UML diagrams, and tests.
- Event Modeling
Visual method for designing event-driven systems with a timeline of commands, events, and views.
- faif/python-patternsDesign Patterns
Collection of design patterns and idioms implemented in Python with concise examples.
Operational Case Studies (Curated, Short)
- Cloudflare Workers Architecture
How Cloudflare built Pingora, their custom Rust proxy replacing Nginx.
- Discord Architecture
How Discord migrated from Cassandra to ScyllaDB to store trillions of messages.
- Figma Multiplayer Architecture
How Figma built real-time collaboration with CRDTs and operational transforms.
- GitHub Moving to Microservices
How GitHub re-architected push processing for better reliability and performance.
- Linear Sync Engine
How Linear built and scaled their real-time sync engine for collaborative project management.
- Notion Postgres Sharding
How Notion horizontally sharded PostgreSQL to handle rapid growth at scale.
Community
- DDD Europe
Premier European conference on Domain-Driven Design with workshops and keynotes.
- GOTO Conferences
Conference series with talks from industry leaders on modern software development practices.
- InfoQ — Architecture & Design
Curated articles, conference talks, and trend reports on software architecture.
- Martin Fowler's Blog
Decades of essential writing on refactoring, microservices, and enterprise architecture patterns.
- QCon
International conference featuring practitioner talks on architecture and engineering culture.
- Software Architecture Monday
Mark Richards' weekly YouTube series breaking down architecture concepts in 10-minute episodes.
Showing a sample of 83 resources. View the full list on GitHub →