C4 Model

Problem

Someone draws:
[Frontend] → [Backend] → [DB]
Another person draws 400 Kubernetes objects. Both call them “architecture diagrams.” The audience doesn't know what level they're looking at.

Solution — C4

C4 zooms into the same system at four levels: Context: the whole system and its surroundings—for example, a customer uses the shop, which calls a payment provider. Containers: applications and data stores inside it—for example, a frontend calls an API that accesses a database. Hosting can use Docker, servers, or managed services. Components: functional parts inside one application—order handling, payment integration, data access inside the API. Code: classes and methods implementing a component, such as PaymentAdapter.sendPayment().
Core idea: C4 provides consistent levels of abstraction for communicating software architecture.