Evidence ledger
One row per claim in The half-life of in-house infrastructure: a decade of Uber, read from its own repositories: who published it, what grade it carries, when it was written, when the link was last checked, and the quote or figure it rests on. Nothing in the guide is cited from memory, so anything not in this table is not in the guide.
Field guide: The half-life of in-house infrastructure: a decade of Uber, read from its own repositories. Research date 2026-09-07. Every row was fetched in this session.
Corpus limit, stated up front. This session's network policy reached github.com and
nothing else. uber.com, arxiv.org, infoq.com, usenix.org, web.archive.org and every
other host tested returned an egress block. Uber's engineering blog, its conference talks and
its papers are therefore absent from this ledger, and so is every internal system that was
never published as a repository. What remains is the repository record, which is a partial and
biased witness: it over-reports the infrastructure Uber chose to publish and under-reports the
infrastructure it kept.
Tiers follow the skill's hierarchy: postmortem, source, adr, casestudy, blog,
paper, talk, vendor.
| # | Org | Title | Tier | Published | Checked | URL | Claim taken from it | Supporting quote or figure |
|---|---|---|---|---|---|---|---|---|
| 1 | Uber | uber-archive organisation profile | source | n/a | 2026-09-07 | https://github.com/uber-archive | Uber runs a dedicated graveyard organisation for retired open source | "Uber's open source projects archive. Support and/or new releases are not available." |
| 2 | Uber | uber-archive repositories, sorted by last push | source | n/a | 2026-09-07 | https://github.com/orgs/uber-archive/repositories?sort=updated | The archive holds 160 repositories; 13 on the first page share a last-push date of 3 December 2019 | Header: "160 repositories". Rows dated "Dec 3, 2019": cpustat, node-flame, sql-differential-privacy, pyflame, ohana-ios, node-stap, kafka-spraynozzle, cherami-thrift, cherami-client-python, cherami-client-java, cherami-client-go, canduit, buck-http-cache |
| 3 | Uber | uber organisation repositories | source | n/a | 2026-09-07 | https://github.com/orgs/uber/repositories?sort=updated | The live organisation holds 176 repositories | Header: "176 repositories" |
| 4 | Uber | uber organisation, archived filter | source | n/a | 2026-09-07 | https://github.com/orgs/uber/repositories?q=&type=archived&sort=stargazers | Only a handful of repositories are archived inside the live org; the rest of the retirements sit in uber-archive | Archived rows shown: prototool (5k), UberSignature (1.3k), tchannel (1.1k), fiber (1k), marmaray (484) |
| 5 | Uber | cherami-server | source | 2017 | 2026-09-07 | https://github.com/uber-archive/cherami-server | Uber built and then retired its own durable message queue | "Cherami is a distributed, scalable, durable, and highly available message queue system we developed at Uber Engineering to transport asynchronous tasks." Banner: archived 18 February 2021 |
| 6 | Uber | hyperbahn | source | 2015 | 2026-09-07 | https://github.com/uber-archive/hyperbahn | The routing mesh for Uber's in-house RPC protocol was archived on the same day as Cherami | "Service discovery and routing for large-scale microservice operations." Banner: archived 18 February 2021. "(This project is no longer under active development.)" |
| 7 | Uber | tchannel-go | source | 2015 | 2026-09-07 | https://github.com/uber/tchannel-go | The RPC protocol library is still unarchived and carries no deprecation notice, though its router is archived | "TChannel is a multiplexing and framing protocol for RPC calls." No archive banner; 512 stars |
| 8 | Uber | ringpop-go | source | 2015 | 2026-09-07 | https://github.com/uber/ringpop-go | Application-layer sharding was abandoned without archiving the repository | "(This project is no longer under active development.)"; "scalable, fault-tolerant application-layer sharding for Go applications"; 880 stars; not archived |
| 9 | Uber | peloton | source | 2018 | 2026-09-07 | https://github.com/uber/peloton | Uber's unified scheduler was built on Mesos, not Kubernetes, and the repository carries no deprecation notice | "Unified Resource Scheduler to co-schedule mixed types of workloads such as batch, stateless and stateful jobs in a single cluster for better resource utilization"; "High Scalability: Scale to millions of containers and tens of thousands of nodes"; no archive banner |
| 10 | Uber | peloton commit history | source | 2019 | 2026-09-07 | https://github.com/uber/peloton/commits/master | Public work on Peloton stopped on 1 October 2019 | Most recent commit "Use mesos plugins to launch tasks in V0 API", Oct 1, 2019 |
| 11 | Uber | aresdb | source | 2019 | 2026-09-07 | https://github.com/uber/aresdb | The GPU analytics engine is presented as a live project with no deprecation notice | "AresDB is a GPU-powered real-time analytics storage and query engine"; 3.1k stars; no archive banner |
| 12 | Uber | aresdb commit history | source | 2020 | 2026-09-07 | https://github.com/uber/aresdb/commits/master | Public work on AresDB stopped on 23 April 2020 | Most recent commit "add middleware support (#365)", Apr 23, 2020 |
| 13 | Uber | prototool | source | 2017 | 2026-09-07 | https://github.com/uber/prototool | Uber retired its protobuf tooling and pointed users at an external successor | Banner: archived 4 March 2022. "Update: We recommend checking out Buf, which is under active development." |
| 14 | Uber | makisu | source | 2018 | 2026-09-07 | https://github.com/uber-archive/makisu | The unprivileged image builder was retired once the ecosystem produced equivalents | "Fast and flexible Docker image build tool designed for unprivileged containerized environments such as Mesos or Kubernetes." Banner: archived 4 May 2021 |
| 15 | Uber | marmaray | source | 2019 | 2026-09-07 | https://github.com/uber/marmaray | The Hadoop ingestion framework was archived in 2024 | "a generic Hadoop data ingestion and dispersal framework and library"; banner: archived 5 January 2024 |
| 16 | Uber | kraken | casestudy | 2018 | 2026-09-07 | https://github.com/uber/kraken | Uber's P2P image registry is one of the few infrastructure repositories still receiving commits, and it publishes measured figures | "in production at Uber since early 2018"; "20K 100MB-1G blobs in under 30 sec"; "more than 1 million blobs per day"; 3G image to 2600 hosts: p50 10s, p99 18s, p99.9 22s; "Supports at least 15k hosts per cluster"; 6.7k stars |
| 17 | Uber | zanzibar | source | 2018 | 2026-09-07 | https://github.com/uber/zanzibar | The generated API gateway is tied to TChannel and Thrift, and is now a low-activity repository | "a build system & configuration system to generate versioned API gateways"; supports "HTTP with JSON" and "TChannel"; 485 stars |
| 18 | Uber | uReplicator | source | 2016 | 2026-09-07 | https://github.com/uber/uReplicator | Uber replaced Kafka MirrorMaker with its own controller-driven replicator | "uReplicator provides a Kafka replication solution with high performance, scalability and stability"; 936 stars; no archive banner |
| 19 | Uber | neuropod | source | 2020 | 2026-09-07 | https://github.com/uber/neuropod | Uber built a framework-neutral inference interface rather than standardising on one framework | "a library that provides a uniform interface to run deep learning models from multiple frameworks in C++ and Python"; 943 stars |
| 20 | Uber / M3 | m3 | source | 2018 | 2026-09-07 | https://github.com/m3db/m3 | The metrics platform lives in its own organisation rather than under uber | "Distributed TSDB and Query Engine, Prometheus Sidecar, Metrics Aggregator"; 4.9k stars |
| 21 | operator report | m3 issue 4103 | postmortem | 2022-04-14 | 2026-09-07 | https://github.com/m3db/m3/issues/4103 | An operator lost a subset of metrics after repeated scale up and down, with no maintainer root cause four years later | "A subset of metrics disappear from m3db after some rounds of scale up/down"; new replicas "reused disks" from an earlier scale-up containing index data but no metrics; M3DB 1.3.0, RF 3, 64 shards; issue still open |
| 22 | CNCF | jaeger | source | 2017 | 2026-09-07 | https://github.com/jaegertracing/jaeger | Jaeger was created at Uber and given to CNCF, where it graduated | "Jaeger is a distributed tracing platform created by Uber Technologies and donated to Cloud Native Computing Foundation"; graduated October 2019; 23.2k stars |
| 23 | CNCF | Jaeger graduation proposal | adr | 2019-09-04 | 2026-09-07 | https://github.com/cncf/toc/blob/main/projects/jaeger/jaeger-graduation-proposal.md | Uber's own scale figures, published through the foundation rather than by Uber | "Running Jaeger in production since 2015. Over 2700 microservices are integrated with Jaeger, which collects about 10 billion spans per day, across multiple data centers."; "Uber has a team of 7 full time engineers working on Jaeger"; "7 committers from 2 organizations, Uber and Red Hat" |
| 24 | Cadence | cadence-workflow/cadence | source | 2017 | 2026-09-07 | https://github.com/cadence-workflow/cadence | Cadence has left the uber GitHub organisation for its own | Repository now serves at cadence-workflow/cadence; 9.4k stars, 140 open issues, 63 open PRs; "CNCF Slack #cadence-users" |
| 25 | Cadence | cadence-workflow organisation profile | source | n/a | 2026-09-07 | https://github.com/cadence-workflow | Uber is now credited as the origin, not the owner | "an open-source platform since 2017 for building and running scalable, fault-tolerant, and long-running workflows. Originally developed by Uber" |
| 26 | Temporal | temporal | source | 2019 | 2026-09-07 | https://github.com/temporalio/temporal | Cadence was forked by its own creators into a venture-backed company | "Temporal is a mature technology that originated as a fork of Uber's Cadence. It is developed by Temporal Technologies, a startup by the creators of Cadence."; 22.9k stars |
| 27 | Temporal | proposals repository | adr | n/a | 2026-09-07 | https://github.com/temporalio/proposals | The fork carries a public design-proposal process the parent project does not | "This repo tracks select new and accepted feature proposals (internal or external) for the Temporal open source project"; directories for api, core, server, versioning, nexus and each SDK |
| 28 | operator report | temporal issue 11547 | postmortem | 2026-08-13 | 2026-09-07 | https://github.com/temporalio/temporal/issues/11547 | A 60-second persistence blip produced a multi-hour synchronised retry storm because backoff was keyed to one error code | "A brief Unavailable blip resets History queue backoff, causing a sustained retry storm"; long backoff applies only to ResourceExhausted; recovery produces "an aggregate, fleet-wide synchronized burst whose combined read QPS exceeds the system persistence cap"; impact across "workflow starts, signals, workflow-task completions, timer fires, and archival" |
| 29 | Uber | cadence pull request 1322 | source | 2018-12-19 | 2026-09-07 | https://github.com/uber/cadence/pull/1322 | A rejected pull request records the argument about cross-datacentre replication when the transport is not lossless | "New functionality for cross DC handling case if Kafka is not lossless"; closed unmerged 19 December 2018; review objections included exposing raw-history APIs on public interfaces and layering violations in history deserialisation |
| 30 | operator report | cadence issue 8010 | source | 2026-04-24 | 2026-09-07 | https://github.com/cadence-workflow/cadence/issues/8010 | Failover can delete workflow history it failed to archive, because the archival URI is immutable across clusters | "Global domain archival URI is immutable across clusters, creating history-loss risk during multi-region failover"; "failed history archival is followed by deletion"; Cadence v1.4.0, multi-region AWS |
| 31 | Uber | cadence closed and unmerged pull requests | source | n/a | 2026-09-07 | https://github.com/uber/cadence/pulls?q=is%3Apr+is%3Aclosed+is%3Aunmerged+sort%3Acomments-desc | The rejected set spans 2017 to 2026 and includes persistence backends the project declined to take on | Rows include "[WIP] Add support for postgres persistence" (#2537, Nov 2019), "DB2 persistence support" (#3446, Sep 2020), "Global ratelimiter fix: prevent low-weight hosts from becoming unusable" (#6196, Aug 2024) |
| 32 | Apache | Hudi RFC index | adr | n/a | 2026-09-07 | https://github.com/apache/hudi/blob/master/rfc/README.md | The donated data-lake project runs a public RFC process, and 13 of its 111 proposals are marked abandoned | 111 RFCs; 57 completed, 18 under review, 12 ongoing, 9 in progress, 13 abandoned. Abandoned include "Table Management Service" (43), "Introduce Secondary Index to Improve HUDI Query Performance" (52), "Robust handling of spark task retries and failures" (79) |
| 33 | Apache | Hudi RFC directory | adr | n/a | 2026-09-07 | https://github.com/apache/hudi/tree/master/rfc | The written record is a directory of design documents, not a wiki | 52 rfc-* directories plus README.md and template.md |
| 34 | operator report | Hudi issue 19357 | postmortem | 2026-07-23 | 2026-09-07 | https://github.com/apache/hudi/issues/19357 | Two write coordinators coexisted for ten minutes after a restart and silently dropped a batch | "[BUG][Flink] Data loss on Flink job restart: two StreamWriteOperatorCoordinators coexist while old close() is still running"; old coordinator's close() completed 10 minutes after the job state went terminal, delayed by slow HDFS; "New WriteResultEvents overwrite buffered events from the old instant"; discovered the following day; Hudi 0.13.1, Flink 1.16 |
| 35 | operator report | Hudi issue 19215 | postmortem | 2026-07-07 | 2026-09-07 | https://github.com/apache/hudi/issues/19215 | A checkpoint captured an all-null coordinator buffer and orphaned already-written files | "[SUPPORT] Flink stream write: data loss on same-graph global failover when an in-progress (all-null) coordinator buffer entry is serialized into the checkpoint state"; recovery "overwrit[es] the populated live buffer", "orphaning the already-written data/log files so the instant never commits" |
| 36 | Apache | Hudi open PR backlog triage | source | 2026-07-16 | 2026-09-07 | https://github.com/apache/hudi/issues/19306 | The donated project accumulated 555 open pull requests, a third of them obsolete | "[TRACKING] Open PR backlog triage: verdicts for open PRs (close / convert-to-issue / keep)"; 555 open PRs; CLOSE 166, CONVERT 166, KEEP 223; oldest reviewed PR dated 26 February 2021 |
| 37 | Apache | Hudi data-loss issue search | source | n/a | 2026-09-07 | https://github.com/apache/hudi/issues?q=is%3Aissue+%22data+loss%22 | Silent data loss is a standing category in the tracker, not an isolated report | Twelve matching issues listed, most open, dated June to August 2026, including #19793, #19686, #19357, #19290 |
| 38 | LF AI & Data | horovod | source | 2017 | 2026-09-07 | https://github.com/horovod/horovod | Uber's distributed training library moved to a foundation and kept its community | Created at Uber, "hosted by the LF AI & Data Foundation", announced December 2018; "The primary motivation for this project is to make it easy to take a single-GPU training script and successfully scale it to train across many GPUs in parallel."; 14.7k stars |
| 39 | LF AI & Data | ludwig | source | 2019 | 2026-09-07 | https://github.com/ludwig-ai/ludwig | The second Uber AI library also sits under a foundation and is still active | "Ludwig is hosted by the Linux Foundation AI & Data"; 11.7k stars; 4,138 commits |
| 40 | Uber | uber-go/guide | source | 2018 | 2026-09-07 | https://github.com/uber-go/guide | Language convention was the cheapest and longest-lived standardisation Uber published | "This repository holds the Uber Go Style Guide, which documents patterns and conventions used in Go code at Uber."; 17.7k stars |
| 41 | Uber | NullAway | source | 2017 | 2026-09-07 | https://github.com/uber/NullAway | A static-analysis tool with a stated build-cost budget is still maintained nine years on | "A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead"; "In our measurements, the build-time overhead of running NullAway is usually less than 10%."; 4.1k stars; last updated 7 September 2026 |
| 42 | Uber | piranha | source | 2019 | 2026-09-07 | https://github.com/uber/piranha | Uber treats stale feature flags as a code-transformation problem large enough to need a tool | "PolyglotPiranha is a lightweight code transformation toolset for automating large scale changes. At Uber, it is mostly used to clean up stale feature flags."; 2.5k stars |
| 43 | Uber | RIBs | source | 2017 | 2026-09-07 | https://github.com/uber/RIBs | The mobile architecture framework states its own organisational scaling claim | "RIBs is the cross-platform architecture framework behind many mobile apps at Uber."; "has proven to scale to hundreds of engineers working on the same codebase and apps with hundreds of RIBs"; 7.9k stars |
| 44 | Uber | h3 | source | 2018 | 2026-09-07 | https://github.com/uber/h3 | The geospatial index is the clearest case of an in-house artefact that became external infrastructure | "H3 is a geospatial indexing system using a hexagonal grid that can be (approximately) subdivided into finer and finer hexagonal grids"; Apache 2.0; 6.5k stars; bindings for Java, JavaScript, Python and others |
| 45 | Uber | submitqueue | source | 2025 | 2026-09-07 | https://github.com/uber/submitqueue | In 2026 Uber's new infrastructure output is monorepo tooling, not distributed-systems primitives | "SubmitQueue is a high-performance speculative merge queue that keeps your trunk consistently green at scale."; 218 stars; last updated 4 September 2026 |
| 46 | Uber | ADR (Agentic AI Detection and Response) | source | 2026 | 2026-09-07 | https://github.com/uber/ADR | The newest published system is AI-agent security, with an accompanying MLSys 2026 paper | "ADR (Agentic AI Detection and Response) is an enterprise security system for AI agents."; "deployed in production at Uber"; paper accepted to MLSys 2026; 1.5k stars |
| 47 | CNCF | Jaeger issue search for span loss | source | n/a | 2026-09-07 | https://github.com/jaegertracing/jaeger/issues?q=is%3Aissue+%22dropped+spans%22+OR+%22span+loss%22+production | Post-donation defect work in Jaeger is version-migration work, not Uber's scale problems | Matching issues include "[Bug]: Synchronous ES bulk writer classifies an idempotent-retry 409 as a poison pill, unlike the async writer" (#9112, closed Jul 2026) and "Backpressure between collector and agent" (#3321, closed Oct 2021) |
What is missing, and what a reader should conclude
No Uber postmortem exists in this corpus, and probably not outside it either. The four incident rows above (21, 28, 34, 35) were all written by operators running Uber-originated software, not by Uber. That is a finding rather than a gap in the hunt: a company that has published Jaeger, Hudi, Horovod, Cadence and M3 has left the failure record of those designs to be written by other people, in other people's bug trackers.
No cost figures. Nothing in the repository record prices any of this. Any statement about what Uber's in-house platform cost, or what retiring it saved, would be invention.
No talks and no papers, because the hosts that carry them were unreachable. The one paper
this corpus can even name is the MLSys 2026 paper referenced by uber/ADR (row 46), and it was
not read.
One host. Every row resolves to github.com. The distinct-host count is a proxy for
independence, and this ledger fails that proxy honestly rather than by padding.