Skip to content
#Architect

[2/2] The C4 Model - Misconceptions, Misuses & Mistakes - Simon Brown - GOTO 2024 (Category Architect)

#Architect #Software #SystemDesign #SoftwareArchitecture #Processes

Finishing. survey In an interesting talk from Simon Brown, I'd like to talk about the remaining myths and tips that Simon gave his listeners.

Message-driven architecture and how to display it in the C4 Model The author recommends not displaying the central Kafka broker as a container, but displaying individual topics as containers or simply pointing them with text on the arrows that connect containers with different services. - Common libraries and components Common libraries and components are often confused, but should be presented in different ways. Shared libraries are better represented as C4 components rather than as stand-alone applications. - Microservices. Microservices are often incorrectly modeled as containers with APIs and database schemas. Microservices should be modeled as software systems, containers, or container groups. It is important to understand that microservices can be represented as a group of containers or as a separate container. - Conway's Law and Microservices As the company grows and teams increase, microservices can become more complex. It’s important to take Conway’s law into account and create microservices that are scalable and integrable. Context Chart and Service Separation The team creates a web application, but the services are transferred to individual teams. The context diagram now shows services as separate software systems. It is important not to see the details of the internal implementation of services, but to use the API. - Scaling and diagrams When scaling C4 for large architectures, problems arise. Solution: Create separate charts for each service. Tools like Visio can make it harder to create charts, but the C4 Model has a Structurizr. Models as code and diagram structure When using models as code to create diagrams, we get the advantages of splitting the model into parts and providing multiple views. Disadvantages: Missing the big picture. Interactive Charts and Tools – Interactive Charts help you learn services and components. You can add metadata and interact with objects.
Guidelines for creating diagrams - Simon suggests focusing on one software system, avoiding displaying external containers to avoid depending on the details of someone else's system. As an example, it shows the use of a common database as a boundary between systems.

The C4 Model is suitable for creating hierarchical abstractions and diagrams. The C4 model is independent of notation and instrumentation.

#Software #Architect #SystemDesign #SoftwareArchitecture #Processes