Practice C4 model diagram vocabulary: Context (L1), Container (L2), Component (L3), and Code (L4) diagrams, zoom in/out language, and describing system boundaries.
0 / 45 completed
1 / 45
In the C4 model, what does a Level 1 (Context) diagram show?
A C4 Level 1 (Context) diagram is the highest-level view — it shows your system as a single box, surrounded by the people and other systems that interact with it. It answers: 'What does this system do and who uses it?'
2 / 45
A C4 Level 2 (Container) diagram shows which level of detail?
A C4 Container diagram zooms into the system to show the major technical containers: web frontend, backend API, database, message broker, etc. 'Container' here means a deployable/runnable unit — not necessarily Docker.
3 / 45
When would you use a C4 Level 3 (Component) diagram?
A C4 Component diagram zooms into a specific container (e.g., the backend API) to show its internal components — controllers, services, repositories — and how they interact. Use it when you need to explain a container's internal architecture.
4 / 45
What does 'zoom in / zoom out' mean when presenting C4 diagrams?
'Zoom in / zoom out' is the C4 model's key navigation metaphor. You start at Context (big picture), zoom in to Containers (technical architecture), then Components (internal design). This lets you explain a system at any audience's level of detail.
5 / 45
How would you describe a 'boundary' in a C4 Context diagram?
In C4, a boundary (shown as a dashed box) separates your system from external actors. When presenting, you might say: 'Inside this boundary is our payment system. Outside, we have the customer's browser, the bank API, and the fraud detection service.'
6 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
7 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
8 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
9 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
10 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
11 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
12 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
13 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
14 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
15 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
16 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
17 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
18 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
19 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
20 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
21 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
22 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
23 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
24 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
25 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
26 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
27 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
28 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
29 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
30 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
31 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
32 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
33 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
34 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
35 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
36 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
37 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
38 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
39 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
40 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
41 / 45
Sarah: "Hey team, I'm working on the new payment processing API. I've created a Level 2 diagram showing the User, Payment Service, and Database containers. It's pretty detailed – I can see all the interactions between them. Should I share this with the wider team?"
Sarah is using correct terminology when discussing C4 Level 2 diagrams. These diagrams are designed for detailed documentation of containers and their interactions, which is exactly what she's doing by showcasing the User, Payment Service, and Database. The other options misinterpret the purpose or level of detail associated with a Level 2 diagram – it's about technical dependencies, not necessarily business value or user flows at this stage.
42 / 45
John: 'I'm reviewing this PR for the new user onboarding flow. The developer used a Level 2 diagram in the PR description to show the User, Authentication, and Profile containers. It includes a lot of detail about the data passed between them – specifically, the user_id being serialized as JSON. I'm not sure if this is *too* granular for a simple feature change.'
Which of the following best describes John's concern?
John's concern stems from the idea that excessive detail in a C4 diagram, particularly at Level 2, can obscure the *purpose* of the PR. While technical accuracy is important, a Level 2 diagram should primarily illustrate the container relationships and their interactions, not every data point exchanged. Over-detailing like this can make it harder for reviewers to quickly grasp the core change being implemented – a key principle of effective C4 diagrams.
43 / 45
David: "I'm creating a PR to add support for two-factor authentication. I've included a Level 2 C4 diagram showing the User, Authentication Service, and Identity Provider containers. It details the flow of tokens and passwords being exchanged. Is this level of detail appropriate for this change?"
David's situation highlights a key use case for Level 2 C4 diagrams: illustrating complex workflows. While Level 1 diagrams show broad context, Level 2 diagrams allow you to delve into the interactions between containers, which is exactly what's needed when describing a feature like two-factor authentication. The inclusion of token exchange details demonstrates an understanding of the underlying system – it's appropriate for this level of change.
44 / 45
Alex: 'I'm writing the PR description for this new microservice. I've used a C4 Level 2 diagram to illustrate the interaction between the `Order Service` and the `Payment Gateway`. It shows how the service calls the gateway API, handles responses, and manages transaction IDs. Should I include specifics about the HTTP methods (GET, POST) used in the description?'
The question tests understanding of when to include specific technical details in a C4 diagram's documentation. While including method details like GET or POST can be helpful, the core purpose of a Level 2 diagram is to show container interactions. Focusing solely on these granular elements risks losing sight of the larger system architecture and business process that the diagram represents—the primary goal is still high-level relationship visualization. Including HTTP methods should be reserved for more detailed documentation or specific use cases where it's crucial.
45 / 45
PR Description
During a code review, Liam comments on a PR describing a new feature: 'I've used a C4 Level 2 diagram to illustrate the flow between the `User` and `Notification Service` containers. It shows how the service sends push notifications based on user events.' His colleague, Maya, responds with:
'That's great context! But is Level 2 really necessary here? Shouldn't we focus on the high-level interaction – sending a notification when an event occurs – rather than detailing the specific message format and queue names?'
The correct answer highlights Maya's astute observation. Level 2 diagrams are powerful but can quickly become overly detailed, obscuring the core purpose of the C4 model which is to provide strategic context. While a Level 2 diagram *can* be useful for illustrating complex interactions, in this scenario, focusing on the high-level flow – 'sending a notification when an event occurs' – is sufficient and aligns better with the goal of communicating the feature's intent without getting bogged down in implementation details. Options A and B are incorrect because error handling isn't always relevant to the initial context, and Level 2 diagrams *are* appropriate for complex interactions.
This is an Architecture Diagrams exercise set. It walks through 45 scenario-based multiple-choice questions built around real usage of Architecture Diagrams terminology that IT professionals encounter on the job.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to complete with no account, sign-up, or paywall.
How many questions are in this exercise?
This set contains 45 questions. Each one shows immediate feedback and a detailed explanation after you answer, so you learn the correct usage right away rather than waiting for a final score.
Do I need prior experience to complete this exercise?
No prior experience is required. Each question includes a full explanation covering the reasoning behind the correct answer, so the exercise itself teaches the Architecture Diagrams vocabulary as you go.
Can I retry the exercise if I get questions wrong?
Yes — use the "Try again" button on the results screen to reset your answers and go through all the questions again. There is no limit on attempts.
Is my progress saved?
Your answers and score for the current session are tracked in the browser as you go. No account or login is needed, and there is nothing to install.
What if I don't understand a term used in a question?
Read the explanation shown after you answer each question — it breaks down the correct term in plain English with a real-world example. You can also check the site Glossary for quick definitions.
How is this different from reading a blog article on the topic?
Exercises like this one are interactive drills that test and reinforce specific vocabulary through multiple-choice questions, while blog articles explain concepts in prose. Practising here after reading builds active recall, not just passive recognition.
Where can I find more Architecture Diagrams exercises?
See the Architecture Diagrams exercises hub for the full set of related pages, or browse all exercise categories from the main Exercises index.
Can I use this exercise to prepare for a technical interview?
Yes — Architecture Diagrams vocabulary comes up often in technical discussions and interviews. Pair this exercise with our dedicated Interview Preparation section for role-specific practice.