Design decisions for mAPI-ng, one file per decision, numbered sequentially. Superseded records keep their number and are marked here rather than deleted.
| ADR | Title |
|---|---|
| 0001 | DDSketch for latency aggregation |
| 0002 | Connect client / gRPC server |
| 0003 | ClickHouse for storage |
| 0004 | Open-core: MIT client, BSL server (superseded by 0022) |
| 0005 | Direct batched ClickHouse writes for v1, durable queue later |
| 0006 | Dashboard: server-rendered Go + htmx + uPlot (superseded by 0008) |
| 0007 | Dashboard auth: OIDC, stateless session cookies |
| 0008 | Dashboard JS budget and Content-Security-Policy |
| 0009 | Setup form CSRF: stateless HMAC synchronizer token |
| 0010 | Tenant-scoped data-plane access |
| 0011 | CI quality gate: Makefile targets on push and PR |
| 0012 | Summaries aggregate-state columns and an instance/method sort key |
| 0013 | Deploy identity (version / env / region) as a stored dimension |
| 0014 | Exemplars: bounded request breadcrumbs from an aggregate to a trace |
| 0015 | USE gauges: per-instance saturation as a separate stream |
| 0016 | Composition seams: out-of-tree features via app.Run options |
| 0017 | Additive MemStats fields on the instance-window stream |
| 0018 | Post-GC heap baseline and true RSS on the instance-window stream |
| 0019 | Leak-vs-burst memory verdict on the endpoint detail page |
| 0020 | File-descriptor and in-flight congestion gauges on the instance-window stream |
| 0021 | Diagnosis engine on the endpoint detail page |
| 0022 | Relicense the server to MIT (supersedes 0004) |
| 0023 | In-app documentation |
| 0024 | One verified email maps to one org (account linking across providers) |
| 0025 | Operator usage seam: cross-tenant volumetry through the composition seam |
| 0026 | RED error rate counts server failures only (5xx + NO_STATUS) |