Scaling the Linear Sync Engine

Linear · 36K views · 2023 · 1:06:08

Open on YouTube

Web developmentDistributed systemsSoftware architecture & designtalk

Why Hacker News recommends it

Recommended whenever local-first software, sync engines and CRDT alternatives come up, as a practical production account.

What it is

A Linear engineer talks about scaling the company's sync engine, which keeps client data local and synchronized. It follows an earlier talk on the same system.

Recommended by 2 HN commenters across 2 different months, 2023 to 2025.

What Hacker News said

Recommends YousefED · 2023-10 · on “Local-first software: You own your data, in spite of the cloud (2019)”

This article has been quite the inspiration for many projects and progress on this front. I think we're seeing more and more developments around CRDTs and local-first frameworks / applications. I'm working on a few projects in this area: - [LINK] - Notion meets Notebook-style live programming for TypeScript / React - [LINK] - a rich text editor built on TipTap / Prosemirror that supports Yjs for local-first collaboration - [LINK] - a wrapper around Yjs for easier development In my experience so far, some things get more complicated when building a local-first application, and some things get a lot easier. What gets easier is that once you've modeled and implemented the data-layer (which does

Recommends saqadri · 2023-11 · on “You don't need a CRDT to build a collaborative experience”

You may not need CRDT per-se, but building a collaborative experience is so difficult. I worked on collaborative systems for a bit, and also have read a bit about how Figma and Notion do it (this is a good read: [LINK] ) -- it's still super hard to get right. This talk by Karri about Linear's "sync engine" is also a good watch: [this video] .

Cites notamy · 2023-06 · on “Scaling Linear's Sync Engine”

Heads-up: This is a video ( [this video] ) embedded in a blog post; there doesn't seem to be an accompanying text-only version.

Cites dgroshev · 2024-06 · on “Local First, Forever”

(this should probably be a post) CRDTs and local first are ideas that is perpetually in the hype cycle for the last decade or so, starting around the time Riak CRDTs became a thing and continuing all the way to today. Niki's post is a perfect illustration: CRDTs offer this "magical" experience that seems perfectly good until you try building a product with them. Then it becomes a nightmare of tradeoffs: - state-based or operation-based? do you trim state? how? - is it truly a CRDT (no conflicts possible), a structure with explicit conflict detection, or last-writer-wins/arbitrary choice in a trench coat that will always lose data? Case in point: Automerge uses pseudo-random conflict resoluti

Cites probabletrain · 2025-03 · on “Sync Engines Are the Future”

> Previous sync engines really want you to sync all data Linear had to do all sorts of shenanigans to be able to sync all data, for orgs with lots of it – there's a talk on that here: [this video]