How Graze Sent 24.5b posts to Bluesky in a year on Clickhouse
Following up on Bryan Newbold's request for trip reports this afternoon, I wanted to weigh in and provide an abbreviated tour of the Graze architecture for feed serving, and how we built a system to deliver and bean count the delivery of 24.5b posts across thousands of feeds in the first year of operation at Graze. There's a few large scale operations in the ATmosphere, and it's our pleasure to share some of the painful lessons we learned along the way to help people on their own journeys.
When Graze started in early November of 2024, we started on "God's own Postgres". In this era of compute, nobody ever got fired for going with postgres, and it seemed like a great starting point. We caught fire in that first month and were quickly on the hook for delivering something around a few million posts a day. One of the big requirements we wanted to maintain was analytics - we wanted to persist data about what we served to whom and when so we could deliver rich introspective details to our users - so we ended up persisting a ton of data about those deliveries.