The C4 model, devised by Simon Brown, offers a hierarchical approach for visualizing and documenting the architecture of software systems. It breaks down the system into four levels of granularity, Context (high-level system interactions), Containers (applications and services within the system), Components (inner parts of those containers), and Code (detailed internals of components). This structure ensures that the system’s architecture is comprehensible to various audiences, from non-technical stakeholders to developers. We will use level 1 and 2 of the C4 model in this course.
The C4 model is a hierarchical approach for visualizing and documenting the architecture of software systems. See here for a detailed description.
(TBD more elaborate description of the method, pictures, and sources)
TBD: Explain - Aggregate Canvas is not really part of the C4 Model, but fits in nicely as a preparation.
The aggregate canvas (https://github.com/ddd-crew/aggregate-design-canvas) uses the aforementioned compact canvas style to sum up what belongs to an aggregate (as a “cluster” of correlated objects - at this stage still quite technology-agnostic). Another useful source is https://domaincentric.net/blog/modelling-aggregates-with-aggregate-design-canvas. The Vaughn Vernon blogs and his “red book” should also be mentionned, as aggregates are an important focus for him.
Some of fields of that canvas can lead to questions, like:
(TBD: more elaborate description of the method, pictures, and sources)
(TBD: step-by-step instructions, pictures, and sources)
(TBD: what to deliver exactly)
(TBD: step-by-step instructions)