How Convex Works, from first principles
Interactive explainers that take you on a journey through building complicated systems.
MUTATION · buyHat()COMMITTEDconst hat = await db.get("hat");
await db.patch("hat", {
stock: hat.stock - 1
}); ✓ read set still true✓ commit at ts 13
ts 12stock: 2
ts 13stock: 1
Next on the bench
One piece of Convex per explainer, with demos you drive yourself.
- 02
Inside the Batch Worker
Why one process can commit thousands of transactions a second without a lock in sight.
Drafting - 03
How a query stays fresh
Subscriptions, read sets and the log, from the browser's point of view.
Planned - 04
Build your own vector search
Embeddings, nearest neighbours, and why the index is the interesting part.
Planned - 05
Crons, retries and the scheduler
What "run this in five minutes" has to survive to actually run in five minutes.
Planned
Get new explainers by email
One email when a new explainer is published. That’s it.