System context
Depending on the complexity of the system, multiple contexts can be created. This is an arbitrary architectural choice. However, a single context allows capturing many already complex use cases.
From a markdown file structure perspective, you can place them flat or in a directory hierarchy. In all cases, each .md
file must have a unique name.
I recommend naming files simply with the name of the abstraction they document (https://c4model.com/abstractions). For example, if you are documenting a webapp-type container for a traveler information system, name the file webapp-voyageur-iv.md
.
Personally, I prefer a directory structure as it allows navigating through the complexity of the system during the drafting phase without getting lost. The examples in this template are organized by directory:
system_context/
βββ context1
β βββ containers
β β βββ container1
β β β βββ components
β β β β βββ component1
β β β β β βββ component1-diag1.md
β β β β βββ component2
β β β β βββ code
β β β β β βββ code1
β β β β β β βββ code1-diag1.md
β β β β β βββ code2
β β β β β βββ code2-diag1.md
β β β β βββ component2-diag1.md
β β β β βββ component2-diag2.md
β β β βββ container1-diag1.md
β β βββ container2
β β β βββ component3
β β β β βββ component3-diag1.md
β β β β βββ component3-diag2.md
β β β βββ component4
β β β β βββ component4-diag1.md
β β β βββ container2-diag1.md
β β βββ containers-overview.md
β βββ context1-diag1.md
βββ context2
β βββ context2.md
βββ contexts-overview.md
β οΈ Reminder: You can duplicate directory names, but each file name and page title must be unique.