Internals

Architecture diagrams

Mermaid sources, SVGs, and reproducible rendering.

The .mmd files are the editable Mermaid sources. Alongside them are SVGs for Markdown viewers without Mermaid support. Labels and captions point out where a diagram abbreviates details. The storage-guide-* diagrams belong to Storage guide.

Source View Purpose
context.mmd SVG System boundaries
components.mmd SVG Components inside the process
deployment.mmd SVG Kubernetes/RADOS
interfaces.mmd SVG UML interfaces and implementations
login.mmd SVG Login sequence
delivery.mmd SVG Local LMTP delivery
imap-states.mmd SVG IMAP state machine
storage.mmd SVG Physical data model
shard-commit.mmd SVG Pending/commit sequence
learning.mmd SVG Durable learning job
storage-guide-ceph-basics.mmd SVG Storage guide: how a client reaches an OSD
storage-guide-ceph-objects.mmd SVG Storage guide: object parts, replication and erasure coding
storage-guide-pools.mmd SVG Storage guide: pools and namespaces
storage-guide-account-objects.mmd SVG Storage guide: the objects of one account
storage-guide-delivery.mmd SVG Storage guide: delivery of one message
storage-guide-read-search.mmd SVG Storage guide: reading and searching
storage-guide-expunge.mmd SVG Storage guide: expunge and the reference count
storage-guide-coordination.mmd SVG Storage guide: CAS, watch/notify, locks, intents
storage-guide-store-wide.mmd SVG Storage guide: store-wide namespaces and their users
storage-guide-programs.mmd SVG Storage guide: programs and pools
storage-guide-operator-flow.mmd SVG Storage guide: where an operator looks first
storage-guide-monitoring.mmd SVG Storage guide: monitoring layers

Rendering

Verified renderer: @mermaid-js/mermaid-cli 11.17.0 with Chrome. Install the renderer outside the Go project or use an existing mmdc. Then, from the project directory:

MMDC=/path/to/mmdc hack/render-docs-diagrams.sh

When using an existing Chrome, point at the executable via executablePath in a Puppeteer JSON configuration and set that file's path as PUPPETEER_CONFIG. The rendering helper does not upload any project data to a diagram service. After a change, update the source and the SVG together and check for readable labels and truncated content.

The storage-guide-* SVGs (2026-10-04) were rendered with Mermaid 11.6.0 in a headless Chrome, theme neutral, white background, not with the verified mmdc above; rendering them again with mmdc replaces them with equivalent output.

Rendered from docs/diagrams/README.md in the ShardPost repository.