Skip to content

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

License

Notifications You must be signed in to change notification settings

QDenka/awesome-software-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Software Design

Awesome

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

Contents


Reference Implementations

Design Patterns

Architecture Decision Records (ADR)

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

System Design

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

Design Documentation

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

Design Verification

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

Real-World Architecture Examples

Books

Community & Conferences

  • 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

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published