| Ceremony state: single-use challenges, region-pinned, 300-second TTL |
Redis Cluster, one cluster per region, no cross-region replication, consumption by Lua script |
open source |
A managed in-memory store per region, with cross-region replication explicitly disabled |
Single-key atomicity on a shard owner is exactly the guarantee single-use consumption needs, and nothing more; the absence of a replication link is a configuration that cannot be got wrong |
ADR-02 |
| Credential store: durable, globally replicated, per-row residency |
CockroachDB with regional-by-row tables, leaseholders following the tenant's pin |
open source core |
A managed globally distributed SQL database with per-row region placement |
Residency becomes a row property rather than a deployment per tenant, which keeps the per-tenant cost floor low while satisfying the strictest tenant |
ADR-01 |
| Key custody: verdict and session signing |
Network HSM pair per region, PKCS#11, with Vault sealed against it and holding no exportable key |
open source plus hardware |
A managed key service with an HSM-backed tier and no export |
Sign-only with no export path is a property an auditor can verify physically; a standing HSM pair per region is the accepted cost floor of saying it |
ADR-12 |
| Edge: TLS termination, origin checking, phase-aware shedding |
Envoy as the ceremony gateway, with per-phase concurrency budgets |
open source |
A managed global edge with a WAF and per-route rate limits |
Shedding has to understand which half of the ceremony a request is, which needs a configurable proxy rather than a generic rate limit |
ADR-08 |
| Service-to-service identity and encryption |
Linkerd mesh with mTLS and per-workload identity |
open source |
A managed mesh or the platform's own workload identity |
Every inter-service hop is authenticated by workload rather than by network position, which is what makes the zone model in view 20 more than a drawing |
ADR-12 |
| Evidence: append-only audit, 13 months hot, 7 years cold |
Kafka into ClickHouse, sealed hash-chained segments into MinIO |
open source |
A managed event stream into a columnar warehouse, with object-store archive and object lock |
Buffered emission keeps the audit pipeline off the ceremony's latency budget, and hash chaining makes a gap detectable rather than deniable |
ADR-13 |
| Policy and configuration distribution |
Versioned documents streamed to in-replica caches, published by the policy service |
built |
A managed configuration service with push and per-client versioning |
The hot path must not read the control plane, and tightening a security control needs an acknowledgement step no off-the-shelf config service offers |
ADR-03 |
| Delivery: code and tenant policy to production |
Argo CD per region with digest-addressed signed images and OPA Gatekeeper admission |
open source |
A managed GitOps or deployment service with image attestation policy |
Policy changes travel the same gated pipeline as code because both can lock a user out, and only one of them was previously reviewed |
ADR-11 |
| Observability: metrics, traces, logs and SLO alerting |
Prometheus and Grafana, OpenTelemetry tracing, Loki for logs |
open source |
A managed observability suite with the same signal types |
The signals that matter here are unusual — ceremony outcome rate, configuration age, hash-chain continuity — and all three need custom instrumentation rather than a provider's defaults |
ADR-07 |
| Authenticator metadata ingest |
CronJob pulling the FIDO MDS BLOB, signature-verified against a Vault-held trust anchor |
open source plus a public feed |
The same job on a managed scheduler, with the anchor in a managed key service |
The valuable part is not the fetch, it is the refusal: there is no code path that accepts an unverified snapshot, however fresh |
ADR-05 |