HackerTubewatch
Surprise me
Frame from Scaling the Linear Sync Engine Plays via YouTube's privacy-enhanced embed

Scaling the Linear Sync Engine

Linear
Talks
YouTube
2 HN users recommended this talk2 months2023–2025 score 2
Years with an HN recommendation, 2007–2026

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

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.

“This talk by Karri about Linear's "sync engine" is also a good watch” (HN, 2023)

2 recommendations · 3 citations · Talks · advanced

5 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@YousefED Oct 2023 Recommends
on HN thread Local-first software: You own your data, in spite of the cloud (2019)
Read more
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 require you to rethink / unlearn a few principles), you don't need to worry about data-fetching, errors etc. as much as in a regular "API-based" app. Another interesting video I recommend on this topic is about Linear's "Sync Engine" which employs some of the local-first techniques as well: [this video]
Linear's sync engine using local-first techniques
@saqadri Nov 2023 Recommends
on HN thread 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] .
Talk about Linear's sync engine by Karri

Citations, criticism and jokes

@notamy Jun 2023 Cites it
on HN thread 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.
Notes the post is just an embedded video without text version
@dgroshev Jun 2024 Cites it
on HN thread Local First, Forever
Read more
(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 resolution, so Niki's solution will drop data if it's added without a direct causal link between the edits. To learn this, you have to go to "under the hood" section in Automerge docs and read about merge rules very attentively. It might be acceptable for a particular use case, but very few people would even read that far! - what is the worst case complexity? Case in point: yjs offers an interface that looks very much like JSON, but "arrays" are actually linked lists underneath, which makes it easy to accidentally become quadratic. - how do you surface conflicts and/or lost data to the user in the interface? What are the user expectations? - how do you add/remove replication nodes? What if they're offline at the time of removal? What if they come online after getting removed? - what's user experie
@probabletrain Mar 2025 Cites it
on HN thread 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]
Explains how Linear syncs all data for large orgs

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close