Reference

Documentation

Reading paths, every document, release evidence and history.

This documentation describes the ShardPost code base; the sections below carry the version and date they were written for. The architecture describes mechanisms that exist; concrete operational results carry a date and a piece of evidence. Goals are marked as goals. The product name is ShardPost, since 0.13.0 also in every operational identifier.

Reading paths

New to the project: Overview → Architecture → Runtime and UML → Developer guide.

Storage change: Storage guide → Consistency and data model → Architecture decisions → Tests and limits.

Operations: Configuration → Operations and releases → Logs, metrics, and traces. The day-to-day commands are documented as manual pages.

Document Contents
Architecture System boundaries, components, deployment, impact of outages
Protocols, features and RFCs Per-protocol reference: capabilities, commands, methods, limits, deviations, RFC index
Runtime and UML Go interfaces, login, delivery, IMAP states
Storage guide How ShardPost uses Ceph, built up from the basics: Ceph, the pools, one account's objects, walkthroughs, programs, operator playbook, monitoring, sizing
RADOS storage Object layout, CAS, shards, intents, references, repair
Developer guide Code map, build, tests, change paths, vendor fork
Quality Test levels, conformance limits, current and historical evidence
Stage 8: operational administration Planned: shardpostctl, OpenAPI, mailboxes, ACL, quota, FTS, repairs, and migration
Operations Dependencies, safe diagnosis, release and rollback, running without Kubernetes
Bench Bench pools, shardpost bench populate/measure, what an account costs in Ceph
Configuration Viper, environment variables, secret files, log levels
Sieve and learning Script execution, external programs, learning queue
Quota Grace, mailbox rules, warning programs, over flag
Admin API and LDA OpenAPI contract, shardpostctl, roles, local delivery
JMAP Account state, session resource, API endpoint, blobs, what is built and what is not
JMAP by example A recorded send and receive through the Director, as JSON
Manual pages shardpostctl command by command, with examples
Observability What the metrics mean, sampling, privacy, operational logs
Architecture decisions Reasons for and consequences of the central design decisions
Project name Candidates and a compatible rename
Diagrams Mermaid sources, SVGs, and reproducible rendering

Evidence and history

Historical documents are kept as rationale and evidence. New implementations follow the current code map and the interfaces that are actually implemented. When a flow changes, its description, the Mermaid source, and the rendered SVG are updated together.

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