System design
How one system is split into deployable parts.
6 concepts · 2 technologies · 1 comparison
Concepts
Start with Monoliths- MonolithsThe whole application is built, tested and deployed as one unit, usually with one database.
- MicroservicesSplit one application into small services that each own their data and can be deployed on their own.
- Serverless architecture1 technologyBuild an application from managed services and short-lived functions, so none of the servers are yours to run.
- Domain-driven design1 technologyShape the software around the business it serves: one shared language with the domain experts, explicit boundaries where words change meaning, and building blocks such as aggregates that guard the rules.
- CQRS1 technologyCommand Query Responsibility Segregation: one model handles changes and enforces the rules, separate read models answer queries, and the read side catches up from the changes.
- Static read models3 technologiesRender the views readers need ahead of time, as JSON, HTML or Parquet files in object storage behind a CDN, so a read is a file fetch with no database on the path. Also called ahead-of-time view generation or precomputed read models.