Our geeky culture — explained👇
Code of Conduct Ethics & Compliance Trust Terms of Use Privacy Policy Cookie Policy List of Sub-processors
Made in Lithuania, EU
Copyright Ⓒ 2021 – 2025 Codigy, UAB
C4 Model Entities
Component
System container
User
Third-party system
Connection lines
The most basic building block of the C4 model. Each thing in your product that does something is a component. Say you have a PDF generator - it’s a component. If there are more functions to it, you can granularly describe each function by nesting more components inside:
PDF generator
- PDF reader
- PDF converter
- PDF exporter
How detailed should you be with your components? It can be very high-level or detailed. We follow a simple rule: If your team wants to discuss and evaluate it, it should be on the map.
What you can nest inside: Only components (If you want to describe a more complicated sub-system, use a system container)
Domain & value stream: Can be assigned
Ownership: Can be assigned
Lifecycle stage: Can be assigned
Enables you to group items that are related by context. With system containers, you can visualise your domains and complicated systems.
Say you have six services for various operations related to payment processing - you would group them into a Payments system container.
What you can nest inside: Components, Other System Containers, Users, Third-Party Systems
Domain & value stream: Can be assigned
Ownership: Can be assigned
Lifecycle stage: Can be assigned
Along with the connection lines, it allows you to visualise how your product is consumed and where value comes from.
Say you have a marketplace. Most likely, you have seller, buyer, and other user types. Add users and connect them with relevant components and system containers to visualise your value streams.
What you can nest inside: Nesting is not supported
Domain & value stream: Can be assigned
Ownership: Can be assigned
Lifecycle stage: Can be assigned
Payment gateways, cloud storage, and authentication systems. We don’t usually build them, but we do have to maintain integrations.
Adding them to your C4 map allows you to accurately describe how your product works. Helpful for onboarding new people and alignment between teams.
What you can nest inside: Nesting is not supported
Domain & value stream: Can be assigned
Ownership: Can be assigned
Lifecycle stage: Can be assigned
Connect any C4 map entity with each other and add anotation. An annotation usually contains:
The reason for connection between items (access, request, update);
Means of communication (like API call);
What you can nest inside: Not supported
Domain & value stream: Can be assigned
Ownership: Not supported
Lifecycle stage: Not supported