explaingit

mehdihadeli/awesome-software-architecture

11,078Audience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A curated reading list of articles, videos, and resources on software architecture and design patterns, covering Clean Architecture, microservices, CQRS, event-driven design, and dozens of related topics.

Mindmap

mindmap
  root((awesome-software-architecture))
    Architecture styles
      Clean Architecture
      Microservices
      Modular monolith
    Design patterns
      CQRS
      Event-driven
      Domain Driven Design
    Engineering practices
      Clean code
      Code review
      Refactoring
    Cloud and infra
      Azure
      Service mesh
      DevOps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study software architecture patterns like Clean Architecture and Domain Driven Design through curated links.

USE CASE 2

Find articles on specific concerns like CQRS, caching, distributed transactions, or API design.

USE CASE 3

Use as an onboarding reference index when bringing engineers up to speed on architectural thinking.

Getting it running

Difficulty · easy Time to first run · 5min
Public domain under CC0 1.0, no restrictions, use for any purpose without attribution.

In plain English

This repository is a curated reading list for software developers who want to learn how to design large systems well. It collects articles, videos, and other resources covering software architecture, design patterns, and engineering principles. The author built it to share links they found valuable and continues to update it over time. A companion website at awesome-architecture.com presents the same content in a more browsable format. The list is organized into dozens of topic sections. Some cover broad architectural approaches: Clean Architecture (a philosophy about separating business logic from external systems), Domain Driven Design (a method for modeling software around the real-world business domain), microservices (splitting an application into small independent services), and a modular monolith (a middle ground that keeps one codebase but with strong internal boundaries). Other sections cover more specific technical concerns like CQRS (a pattern for separating read and write operations), event-driven architecture, caching, distributed transactions, and API design. Beyond pure architecture, the list also covers related engineering practices: clean code, refactoring, code review, concurrency, database design, cloud deployment patterns, and DevOps. There are also sections on cloud-specific topics including Microsoft Azure, service discovery, service mesh, and platform-as-a-service options. Each topic section links to a separate document rather than listing everything inline, so the main README functions as a table of contents. The author notes that descriptions for some sections are still being written over time, and contributions from others are welcome. The license is CC0 1.0, meaning the content has been placed in the public domain with no restrictions on use. This is a reference index only, there is no code to run. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Using Clean Architecture principles from the awesome-software-architecture list, help me structure a new Node.js REST API with clear separation between business logic and the database layer.
Prompt 2
Explain Domain Driven Design bounded contexts to me as if I am a PM who has never written code, and tell me when I should care about them.
Prompt 3
I want to learn microservices from scratch. Build me a 4-week study plan based on the topics covered in the awesome-software-architecture collection.
Prompt 4
Explain CQRS and event sourcing together with a concrete example, use an e-commerce order system to make it tangible.
Open on GitHub → Explain another repo

← mehdihadeli on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.