Wat is het C4 model niveau 2?
Het C4 model is een model voor het visueel documenteren van softwarearchitectuur, opgebouwd uit vier niveaus: Context, Container, Component en Code. Niveau 2 – het Container Diagram – zoomt in op het systeem van niveau 1 en laat zien waaruit het systeem is opgebouwd.
Het doel van niveau 2 is om te begrijpen hoe het systeem is opgesplitst in containers (zoals webapps, mobiele apps, databases, API’s) en hoe deze met elkaar communiceren.
Casus
Bij de digitale afsprakenplanner van de huisartsenpraktijk bestaat het systeem uit meerdere onderdelen: een mobiele app, een webportaal voor huisartsen, een backend-API, en een database. Het systeem integreert ook met een externe dienst, zoals het EPD.
Hoe zit C4 niveau 2 in elkaar?
Niveau 2 van het C4 model bevat een paar andere elementen dan niveau 1. Bij niveau 2 zijn ook de actoren (normaal en extern), externe systemen en relaties aanwezig. Verder zijn er nu een paar nieuwe elementen:
- Standaard container: Een onderdeel van het systeem dat code uitvoert of een functie vervult. Dit kan bijvoorbeeld een backend-API of een mobiele app zijn.
- Storage container: Een container die data opslaat. Dit kan een relationele database zijn (zoals PostgreSQL) of een cloud-gebaseerde opslag (zoals Azure Blob Storage).
- Microservice container: Een container met één specifieke verantwoordelijkheid, meestal klein en zelfstandig. Microservices communiceren vaak via een API of message queue met andere containers.
- Message bus container: Een container die berichtenverkeer mogelijk maakt tussen andere containers via een publish/subscribe-model of een queue. Dit wordt vaak gebruikt voor asynchrone communicatie.
- Web browser container: Dit is geen fysieke container, maar een weergave van een gebruiker die via een browser interactie heeft met bijvoorbeeld een webportaal. Het wordt getoond om duidelijk te maken dat de interactie via de browser verloopt.
- Systeem context: De systeem context is de plek waar alle containers van niveau 2 in geplaatst worden. Hiermee wordt aangeduid dat alle containers binnen deze border onderdeel zijn van dat systeem. Hierbij is het van belang dat de naamgeving van het systeem in niveau 1 gelijk is aan de naam van het systeem in niveau 2.
In Figuur 1 zijn alle containers die op niveau 2 beschikbaar zijn weergegeven. Bij alle containers staat tussen [ ] wat tekst. Dit zijn de technieken die gebruikt worden binnen die container. Dit kunnen programmeertalen, frameworks, etc. zijn.
Figuur 1 Containers van C4 niveau 2
Hoe gebruik je het C4 model op niveau 2?
Gebruik niveau 2 om:
- Architectuurkeuzes: Laat zien hoe het systeem technisch is opgebouwd.
- Communicatie verduidelijken: Wie praat met wie? En via welke technologie?
- Brug tussen niveau 1 en niveau 3: Dit diagram biedt inzicht voor developers, ontwerpers en DevOps-teams.
Casus
Situatie: De huisartsenpraktijk gebruikt een systeem met verschillende containers:
- Een mobiele app voor patiënten om afspraken te maken
- Een webportaal voor huisartsen om beschikbaarheid te beheren
- Een backend-service (API) voor het verwerken van afspraken
- Een relationele database voor opslag van afspraken
- Integratie met het EPD-systeem
Uitwerking van de casus: In de uitwerking van deze casus zijn de technieken niet specifiek benoemd. Dit zal per project verschillen en zal je zelf moeten aangeven.
Bronnen
C4 model niveau 2: https://c4model.com/diagrams/container
Volgende stap: Uitleg C4 model niveau 3

