[1/2] The C4 Model - Misconceptions, Misuses & Mistakes - Simon Brown - GOTO 2024 (Category Architect)
Another one. play by Simon Brown, creator C4 Modelon the theme of modeling architecture. Specifically in this talk, he acts as the man who debunks myths about using the C4 Model for this purpose. What Simon Says About the C4 Model
- A set of hierarchical abstractions (software systems, containers, components, and code).
- A set of hierarchical diagrams (system context, containers, components, and code).
- Notation independent.
- Tooling independent.
The point is that the C4 Model allows you to tell different stories to different audiences - the author shows this with the example of Google Maps, where we can go from the level of the entire globe to the level of Google Street View and see what our house looks like:) If we go to the elements of the C4 Model, then we have the system context that describes the system and its environment, and the containers show the technological components and their interaction. And then the author lists a set of myths and further deals with them.
- The C4 Model is new on the market No C4 Model exists with 2007 of the year and possesses a general tuning The C4 Model was created to replace the UML. C4 was not created as a replacement for UML, it complements it with a structured approach to creating hierarchical abstractions and diagrams. The C4 model has become popular in recent years. 5 years? It became more popular after the pandemic, especially among organizations working remotely. Why Model C4 is called C4, not C3 Simon thinks it's important that diagrams are grounded in reality, namely components and code. (lower 2 level) Blue and gray in notation boring Simon says you can choose your favorite color. The C4 model may not be clear if it contains a lot of text. Simon recommends using a lot of text to help convey more information about the system. And the presence of metadata in the diagrams helps eliminate ambiguity and correctly interpret the diagrams. C4 is not designed to capture architecture solutions directly on diagrams. Simon says they should be described separately as ADRs. (architecture decision records)Applying diagrams from the C4 Model for clarity and clarity C4 does not contain a deployment scheme C4 was inspired by UML and model 4+1 Philippe Krachten, in which the deployment scheme is very important. As a result, you can use the C4 Model to build your deployment diagram with containers, systems and infrastructure. We do not use the C4 Model as we use DDD instead. It's just a meaningless thing that shows that people who say that don't play around. Naming container and component are not very good - Yes, but it's better not to rename them, because it will confuse people even more. - C4 Model is too limiting - The author shows that 4 The level of abstraction helps to stay at a certain level of abstraction. If you remove the limit on the levels of abstractions, it is easy to fall into the N-levels, which are already difficult to distinguish even at the level of words. Simon shows an example with a naming database - is it a database server? a specific database? a specific schema? In general, Simon says that a limited set of levels allows you to bring clarity to the discussion, rather than fall into a fractal story with systems, subsystems, sub-systems...systems in which the hell breaks a leg. - Can I add more abstractions? Simon explains why the following terms are not good: subsystems, bound contexts, layers. These abstractions do not add value to diagrams. Some of these terms are not abstractions, but elements of the organization of elements.
Continuation of the review in the next post.
P.S. I've already talked about Simon's other presentations on modeling architecture.
- The lost art of software design by Simon Brown at Devoxx Belgium 2022
- C4 Models as Code • Simon Brown • YOW! 2022
- Continuous Architecture in Practice Eoin Woods & Simon Brown • GOTO 2021
#Software #Architect #SystemDesign #SoftwareArchitecture #Processes