Every source behind this page, graded. One host, thirty artefacts, no
engineering blogs, talks or papers, for the reason given in section 01.
Decision record
Pinterest2021-12
DoctorK archive notice naming Orion as successor
The clearest decision record in the corpus. It states that Orion "addresses the
shortcomings of DoctorK" and had been "stabily managing our entire kafka fleet for
>6months" before the older project was archived on 16 December 2021.
Carry forwardRetire the old system only after the replacement has carried the whole fleet for a stated period, and put that period in the notice.
https://github.com/pinterest/DoctorK
Decision record
Pinterestchecked 2026-09
PSC README: one interface over several backends
Describes a "generic and extensible client library that allows applications to interact
with different backend PubSub systems with a single unified interface", listing "Seamless
switching between PubSub backends without code changes" as a feature and naming Kafka and
MemQ as the supported backends.
Carry forwardThe migration cost of an engine is set by how many build files name its client, so the abstraction has to exist before the migration is proposed.
https://github.com/pinterest/psc
Design document
Pinterestchecked 2026-09
MemQ architecture document: batches, pointers, direct reads
The in-repo design document for the write and read paths. Batches are uploaded to
storage on fill or timer; consumers discover them through a notification queue and fetch
them "directly from the Storage layer"; micro-batching and immutable writes are named as
the reason an object store is affordable as primary storage.
Carry forwardTaking the broker out of the read path is what lets read capacity and storage cost scale independently.
https://github.com/pinterest/memq/blob/master/docs/architecture.md
Design document
Pinterestchecked 2026-09
MemQ recovery model after a storage fault
The same document states that the replicated storage layer "only needs to recover the
specific Batch whose replica counts were reduced due to faults", and notes that migrating
workloads off Kafka "required strict validation on data loss".
Carry forwardImmutable, addressable units make recovery proportional to the damage rather than to the dataset; that is the operational argument for the design, not cost.
https://github.com/pinterest/memq/blob/master/docs/architecture.md
Decision record
Pinterestchecked 2026-09
Orion README and its design goals
Defines Orion as "a generalized pluggable management and automation platform for
stateful distributed systems" and names conflict between human and automated operations
on the same cluster as a first-class problem to solve.
Carry forwardIf humans and automation can both act on a cluster, arbitration between them belongs in the control plane rather than in a runbook.
https://github.com/pinterest/orion
Case study
Pinterestchecked 2026-09
MemQ README, with the cost claim
States that MemQ "augments Kafka at Pinterest", uses "a decoupled storage and serving
architecture similar to Apache Pulsar and Facebook Logdevice", handles GB/s, and is "90%
more cost effective than our Kafka footprint".
Carry forwardThe word is augments, not replaces. A second bus for the workloads that suit it is a cheaper answer than a migration of everything.
https://github.com/pinterest/memq
Operator report
Pinterest2020-06
secor issue 395: events lost during rebalancing
Titled "Secor loses events during kafka rebalancing" and closed in June 2020. The
failure is located in the consumer-group handover rather than in the upload to object
storage.
Carry forwardWhen a sink promises exactly-once but does not own the offset commit, the promise covers the steady state only.
https://github.com/pinterest/secor/issues/395
Operator report
Pinterest2022-08
secor issue 2316: duplicates on partition revocation
"Duplicate message when partition revoking or rebalancing", filed in August 2022 and
still open at the check date, four years later and two years after the related loss issue
was closed.
Carry forwardAn open issue with this lifetime is a statement that the fix is architectural, not a patch; treat it as a design constraint on anything you build on top.
https://github.com/pinterest/secor/issues/2316
Operator report
Pinterest2020-05
secor issue 1010: offset-check ordering
"Kafka offset checking logic in message write might lead to message loss". The
reporter places the window between the offset check and the durable write.
Carry forwardThe ordering of commit and durability is the whole guarantee; write it down explicitly in any sink you build.
https://github.com/pinterest/secor/issues/1010
Operator report
Pinterest2026-05
orion issue 404: a no-op authorization filter
"Security hardening: replace unconditional NoopAuthorizationFilter with
configurable/fail-closed auth", opened 27 May 2026 and open at the check date, on the
platform that performs rolling restarts across the Kafka fleet.
Carry forwardAudit the authorization default of every tool that can act on a whole fleet, and require fail-closed regardless of network assumptions.
https://github.com/pinterest/orion/issues
Operator report
Pinterest2026-09
singer pull queue: 291 open, mostly security bumps
Includes an automated proposal to move the Kafka client from 2.3.1 to 4.2.0, opened in
February 2026 and still open, alongside human feature work merged as recently as
September 2026.
Carry forwardJudge a repository's maintenance by its dependency queue rather than its commit graph; the two can tell opposite stories.
https://github.com/pinterest/singer/pulls
Source
Pinterest2026-09
Organisation repository listing, sorted by update
One hundred public repositories, with the recently touched ones dominated by forks:
Ray, StarRocks, Superset, Druid, Karpenter and Restate all appear on the first page.
Carry forwardSort any organisation's repositories by last update and count the forks; the ratio dates the shift from building infrastructure to operating it.
https://github.com/orgs/pinterest/repositories
Source
Pinterest2026-09
Archived repository listing: fourteen, none after 2021
The complete archive register for the organisation. The newest entry, DoctorK, last
received a push in December 2021.
Carry forwardAn archive register that stops is not evidence the platform stopped; it is evidence the organisation stopped publishing the things it retires.
https://github.com/orgs/pinterest/repositories?q=archived%3Atrue
Source
Pinterest2018-02
terrapin, archived 14 February 2018
"A low latency serving system providing random access over large data sets, generated by
Hadoop jobs and stored on HDFS clusters", built on HFiles. Archived the same day as
PinLater.
Carry forwardBatch archive dates mean retirement is a periodic sweep; the project died well before the banner.
https://github.com/pinterest/terrapin
Source
Pinterest2018-02
pinlater, archived 14 February 2018
A Thrift job-scheduling service backed by MySQL or Redis, recommending MySQL up to
"no more than 1000 QPS per shard". The queue state lived in a relational database.
Carry forwardA queue whose state is in your primary database inherits that database's sharding limits as its throughput ceiling.
https://github.com/pinterest/pinlater
Source
Pinterest2018-11
kingpin, archived 17 November 2018
Service discovery and configuration for a Thrift service architecture, with ZooKeeper
holding dynamic serversets and Amazon S3 holding configuration data.
Carry forwardObject storage as a configuration substrate predates its use as a log substrate by years; the appetite was there long before the latency was acceptable.
https://github.com/pinterest/kingpin
Source
Pinterest2019-06
mysql_utils, archived 26 June 2019
Backup, restore, failover and replication tooling for the MySQL estate that held pins,
boards and credentials, with a README warning in capitals that the tools will not work
outside Pinterest without substantial adaptation.
Carry forwardFleet tooling encodes one company's service discovery and configuration; publishing it is a gesture, not a gift.
https://github.com/pinterest/mysql_utils
Source
Pinterest2019-12
pinball, archived 11 December 2019 with no successor named
A workflow manager with a thousand stars, retired under the line "This project is no
longer actively maintained by Pinterest" and no forwarding address.
Carry forwardThe absence of a named successor in a retirement notice is the most common form of the notice, and the least useful to everyone downstream.
https://github.com/pinterest/pinball
Source
Pinterestchecked 2026-09
rocksplicator: unmaintained, and describing a live fleet
A C++ suite for RocksDB replication, request routing and Helix-driven cluster
management. The README declares the project archived and unmaintained, then describes
nine services, nearly thirty clusters, over four thousand hosts and tens of petabytes a
day in the present tense.
Carry forwardRead the README before the archive flag; they disagree more often than anyone expects.
https://github.com/pinterest/rocksplicator
Source
Pinterestchecked 2026-09
secor: the Kafka log copied into object storage
Persists Kafka logs to S3, Google Cloud Storage, Azure Blob Storage and Swift, claiming
each message is saved in exactly one file. The most widely adopted thing in the
organisation: 1.9k stars, 536 forks, 3,338 commits.
Carry forwardThe system with the most outside users is a decade-old sink, not any of the newer platform pieces; adoption follows narrow scope, not ambition.
https://github.com/pinterest/secor
Source
Pinterestchecked 2026-09
singer: the ingest agent and its honest guarantee
A logging agent uploading to Kafka with at-least-once delivery via watermark files,
claiming over 100MB/s on the thrift format and sub-5ms upload latency, deployable as a
Kubernetes daemonset or sidecar.
Carry forwardAn agent that tails files on an ephemeral host cannot offer exactly-once; design the downstream for duplicates rather than arguing about it.
https://github.com/pinterest/singer
Source
Pinterest2022-12 to 2026-04
MemQ release tags
Tags run from 0.2.17 in December 2022 to 1.0.0 in August 2025 and 1.0.2 in April 2026.
Two years and eight months of pre-1.0 releases while carrying production traffic.
Carry forwardVersion numbers on internally-motivated infrastructure track internal confidence, not production readiness; date the tags instead.
https://github.com/pinterest/memq/tags
Source
Pinterest2023-11 to 2026-04
PSC release tags: three major lines at once
Tags 2.3.3, 4.0.0 and 3.3.1 were all cut within four days of each other at the end of
January 2025, with the newest line reaching 4.2.0 in April 2026.
Carry forwardAn abstraction that decouples applications from an engine becomes its own compatibility surface, and you will maintain several of its major versions at once.
https://github.com/pinterest/psc/tags
Source
Pinterest2023-12 to 2026-08
PSC closed-unmerged pull requests, including tiered storage
Twenty-seven closed without merging. Two of them, from January and June 2025, are
tiered-storage integration attempts left in draft, which is the upstream engine growing
the capability MemQ was built to provide.
Carry forwardWatch for the upstream absorbing your differentiator; the abandoned integration branch is where that argument is recorded.
https://github.com/pinterest/psc/pulls?q=is%3Apr+is%3Aclosed+is%3Aunmerged
Source
Pinterest2026-09
PSC issue tracker: empty
Zero issues on the library that the whole design depends on, against 1.9k stars and an
active issue list on the ten-year-old sink beside it.
Carry forwardPublished infrastructure with no issue traffic has no outside operators, so its public bug record cannot be used as evidence of maturity.
https://github.com/pinterest/psc/issues?q=is%3Aissue
Source
Pinterestchecked 2026-09
teletraan: the survivor
"Teletraan is Pinterest's deploy system. It deploys thousands of Pinterest internal
services, supports tens of thousands hosts." Still receiving commits in September 2026
after 1,897 of them.
Carry forwardIn-house software survives where no industry standard arrived to replace it; that, not quality, is the sorting rule visible in the archive.
https://github.com/pinterest/teletraan
Source
Pinterestchecked 2026-09
The Ray fork, and the notice that closes the record
Forked from ray-project/ray, carrying a notice that development, review and wheel
releases "have moved to Pinterest's internal GitHub", that pushes here "will not be picked
up", and that the repository exists as a staging point for contributions upstream.
Carry forwardThe endpoint of the fork-and-track strategy is a private fork with a public conduit; plan your own dependency intelligence for a world where that is normal.
https://github.com/pinterest/ray
Source
Pinterestchecked 2026-09
The StarRocks fork
Forked from StarRocks/starrocks, the analytics engine Pinterest now runs rather than
builds, in the same pattern as the Druid and Superset forks beside it.
Carry forwardThe build-versus-adopt line moved engine by engine, and the fork header is the dated artefact that marks where it moved.
https://github.com/pinterest/starrocks
Source
Pinterestchecked 2026-09
slate: the newest thing published is a control plane
"Slate is a framework that solves Resource Lifecycle Management enabling us to create a
unified Platform as a Service for infrastructure." One star, sixty-eight commits, no
outside community.
Carry forwardThe layer a mature platform team still writes itself is resource lifecycle and policy, because that is the part no upstream can supply.
https://github.com/pinterest/slate
Source
GitHub2026-09
Advisory database: nothing against Pinterest's own software
Every advisory matching the query concerns third-party WordPress and Joomla plugins.
None names a repository in the Pinterest organisation.
Carry forwardA silent advisory record is not a safety record. Combine it with the issue tracker, where the only security finding in this corpus actually sits.
https://github.com/advisories?query=pinterest