Every backend you add is a six-year promise: ten years of Grafana Labs in git
How Grafana Labs' four telemetry databases converged on one object-storage architecture between 2016 and 2026, and what it cost to remove the storage backends they started with.
A decade of Grafana Labs reconstructed entirely from its own git history across ten repositories: the convergence of Mimir, Loki, Tempo and Pyroscope on object storage plus a Kafka write path, the fork decisions that hold them together, and the removal record that shows what supporting a storage backend actually costs. After reading it you can put a number on your own deprecation tail, recognise the two failure classes that every generation of this rewrite reproduced, and read any public company's architecture out of its commits with the git commands in section 8.
The rewrites all landed roughly on schedule; the removals took four to six years and arrived in one wave, and one of them was reverted eight days after it merged because nobody could tell who still used the endpoint.
What you get out of it
- The interval that matters is replacement-to-removal, not deprecation-to-removal: Loki's object-store index shipped in July 2020 and the last backend it replaced was deleted in April 2026, 68.6 months later, against a written guarantee of two minor releases.
- Mimir, Loki and Tempo adopted a Kafka log in front of their ingesters in that order between December 2023 and August 2025, and all three then produced the same class of data-loss bug: progress committed before the flush that makes data durable.
- Correctness bugs in the rewritten query engines sit in optimisation passes, not evaluation cores, and several landed after the new engine became the default, which is when wrong answers stop arriving as errors.
- Fork decisions are recorded in go.mod comments: Mimir replaces Prometheus itself, and the memberlist fork exists because upstream changes 'haven't been merged upstream yet for years'. Loki's Cassandra driver fork outlived the Cassandra backend by five months.
- The Cortex to Mimir fork was renamed and relicensed in a private repository on 11 August 2021, 7.6 months before the first public Mimir tag, so consumers of the upstream project could not plan for it.
Scope
Why this, now. Loki deleted four storage backends in nine weeks in April and May 2026, six years after the replacement shipped, which makes 2026 the first year the full cost of the decade's storage decisions is visible in one place.
What it does not cover. The Grafana dashboard application beyond a single data point about its frontend, Grafana Cloud's commercial architecture and operations, pricing, and anything published on grafana.com, because this session's network policy reached GitHub only.
Other field guides
The lock is brief. The queue is the outage.
Reconstructs live schema change from the places fourteen organisations wrote their lessons down: GitLab's production incident tracker, gh-ost's desig…
24 sources · 14 organisations · 4 postmortemsWhen the database cannot be split: ten years of GitLab.com, read from its own incidents and design documents
A single-company archaeology of the problem every growing platform eventually hits: two components that cannot be sharded without rewriting the appli…
30 sources · 1 organisations · 9 postmortemsSwapping the engine under the client: ten years of Pinterest, read from its own repositories
A decade of one company's data platform read from artefacts rather than announcements, built to answer a single question: what actually decides wheth…
30 sources · 2 organisations · 5 postmortems