Engineering

How we shipped realtime without a rewrite

A streaming layer, a cache we trust, and a very boring migration plan.

Jonah Belknap

Platform Engineer

8 min read

Realtime is usually sold as a rewrite. We did not have a rewrite in us, so we looked for the smallest set of changes that would make the product feel live.

A streaming layer, not a new product

We put a streaming layer in front of the warehouse and taught the canvas to read from either source. Cold queries still go to the warehouse. Everything from the last hour comes from the stream.

The boring migration

Dual writes for six weeks, a read switch behind a flag, and a rollback we tested more often than we used. Nothing about it was clever, which is why it worked.

Create a free website with Framer, the website builder loved by startups, designers and agencies.