A C4 model is a common set of abstractions to create used to describe the static structure of a software system; these abstractions having four levels: software system, containers, components and code. People use the software system.
The following diagrams use the standard C4 notation, with the addition of a different colour to highlight a UI Component, as opposed to a back-end component, in our micro front-end (see ADR: 003 We-will-use-a-Micro-Frontend-architecture).
A System Context diagram provides a starting point, showing how the software system in scope fits into the world around it.^ This diagram shows how the main users of Sysops Squad interact with the system, and the other systems that the Sysops Squad system interacts with.
A Container diagram zooms into the software system in scope, showing the high-level technical building blocks.^ The following diagram breaks down the Sysops Squad system into groups of related functionality, or domains, and shows how they interact with each other and how the users of the Sysops system interact with the functionality.
Authentication has been left of out this diagram for readability. See Authentication container diagram below.
Every service within the Sysops Squad system can use the Authentication domain where needed, but is not shown on the below diagram for readability. Having a single source of truth for authentication allows the Sysops Squad system to be built on the premise of Zero Trust. When a request is made to a service it will not be assumed that the request is from a genuine authenticated user, but checked against the authentication domain, e.g. by sending a token.
A Component diagram zooms into an individual container, showing the components inside it.^ The following diagrams break down the containers/functionality shown above further, into components which represent individually deployable services.
The following diagram shows the individually deployable services in the Ticket Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the User Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Notification Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Notification Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Report Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Knowledge Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Knowledge Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Billing Management domain, and how they interact with each other, users and other domains.
The following diagram shows the individually deployable services in the Contract Management domain, and how they interact with each other, users and other domains.
^ explanations from https://c4model.com/
back to Views & Perspectives