Collection of articles, courses, videos etc. on software architecture.
Architecture documentation should effectively communicate what the project is about and what problems does it solve and how.
C4 Model allows you to build a map of the architecture with various level of zoom on the details, from the bird view to the description of individual containers or even code
- C4 Model - Simon Brown's (author of the model) website on the C4 model
- C4-PlantUML - PlantUML assets for recording C4 diagrams as code
An architecture decision record (ADR) is a document that captures an important architecture decision made along with its context and consequences.
- Documenting Architecture Decissions - article by Michael Nygard, probably first one coining the idea and most popular format
- ADR github repository from Joel Parker Henderson - an indepth collection of thoughts on how to use ADRs and when to use them, plus contains selection of templates and examples of ADRs
- Architecture Decision Records - homepage of Github adr organization formed to motivate ADR use and build tooling around ADRs
- ADR at Spotify - article on ADRs as adopted at Spotify with good sections on why should you do ADRs and heuristics for when to write one
- Communicating and documenting architectural decisions - witty talk by David Ayers on wha would you use ADRs and how to socialize decisions in the team; also what to do about overarching architectural decisions
- Software Architecture Monday Lesson 55 - a short, 10 minute introduction to ADRs with a concrete example of an ADR
Modular Monolith architecture is a monolithic system (deployed as single unit) designed in a modular way (lowly coupled independent modules).
- Modular Monolith Primer - a collection of 5 articles describing reasoning behind modular monolith architecture, when it makes sense and approaches for its implementation with integration styles and domain-centric design