What is C4?
The software architecture model to rule them all
The C4 model is an approach to software architecture that allows for clear and consise communication between various groups of a company. The basic premise is that software can be viewed into 4 perspectives: contexts, containers, components, and code. In order to view these perspectives, we first must break out software down into the following four abstractions: software systems, containers, components and code.
Example: Internet Banking System
A software system a high level of abstraction that groups a set of containers that deliver value to users.
Examples: Mobile app, web application, database
A container is an application or data store. A software system is made up of several of these containers.
Example: Authentication Controller
Compontents are logical groupings of related functionality in a specific container. These components are not deployable units individually. They are deploy within a container.
Code is the lowest level in the C4 model. Code elements are the actual classes in your source code. These should be generated from source code and never created manually.
System Context Diagram
If you need more information about the C4 model, head over to Simon Brown's website, c4model.com.