Skip to content

QDenka/awesome-software-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Awesome Software Design

Awesome

The discipline of organizing and structuring software at the code and component level.

Contents

Implementation Patterns & Reference Code

Design Patterns

API & Interface Design

Decision Records (ADR/RFC)

  • joelparkerhenderson/architecture-decision-record - Collection of ADR templates, examples, and best practices from real projects.
  • 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.
  • adr/adr-manager - Web-based interface for creating, editing, and managing Architecture Decision Records.
  • phodal/adr - Lightweight CLI tool for managing ADRs with reporting and visualization support.
  • 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.

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.
  • 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.
  • Structurizr - Official C4 tooling by Simon Brown: architecture-as-code via DSL with interactive, zoomable diagrams.
  • PlantUML - Widely-adopted diagrams-as-code tool for UML/C4 and architecture visuals with strong IDE and CI integration.

Architecture Verification (CI Rules / Fitness Functions)

  • TNG/ArchUnit - Industry-standard Java library for checking architecture constraints as unit tests.
  • TNG/ArchUnitNET - C# port of ArchUnit for enforcing architecture rules in .NET projects.
  • LukasNiessen/ArchUnitTS - TypeScript port of ArchUnit for enforcing architecture rules with CI integration.
  • 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.
  • LemonAppDev/konsist - Kotlin architecture linter enforcing coding conventions, project structure, and dependency rules.
  • arch-go/arch-go - Architecture testing for Go with configurable rule sets for dependencies, naming, and layering constraints.
  • roblaszczak/go-cleanarch - Go validator enforcing Clean Architecture dependency rules across packages.
  • tach-org/tach - Rust-powered Python tool for enforcing module boundaries and dependencies with zero runtime cost.
  • Shopify/packwerk - Ruby package boundary enforcement tool, production-proven at Shopify scale.
  • 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.

Operational Case Studies (Curated, Short)

Books

Community

  • 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.

Contributing

Contributions welcome! Read the contribution guidelines first.

About

Organizing and structuring software through patterns, decisions, and verified design rules

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors