Diagrams
Diagrams
The C4 model of the target architecture as LikeC4 sources.
| File | Holds |
|---|---|
spec.c4 |
Element and relationship kinds (person, system, container, module …) |
model.c4 |
The elements and their relationships — one model, every view is a projection of it |
views.c4 |
L1 context, L2 containers, L3 server / modules / web app, and four dynamic flows |
likec4 is a dev dependency, so these need no global install:
make arch-diagrams # interactive, with navigation between levels
make arch-diagrams-check # validates the sources; part of `make arch`, so CI runs it
Nothing is rendered ahead of time. The published developer docs build the whole
explorer at /diagrams/ and embed
individual views in the chapters as <likec4-view view-id="…">, both from these
sources on every build — so a view cannot go stale, and changing the model is the whole
job. The cost is that the chapters show no diagram when read on GitHub, only a link to
the view.
Views, in reading order:
index— who uses the system and what it talks tocontainers— web app, server, database, file storeserver— HTTP, feed, jobs, kernel and the nine modulesmodules— which module may call which; dashed edges are reactionsweb— shell, replica, commands, features, PWA runtimeflowRsvp,flowSessionMoved,flowJoin,flowReconnect— the four flows the rest of the design keeps referring to
Keep the model honest: when a document here changes a boundary, change model.c4 in
the same commit.