scaling atproto down
and back up again, maybe
scope: firehose consumers
records (but not lexicons)
indexing (but not backfill)
what apps does our technology invite people to build?
what do we want to invite?
—Christine Lemmer-Webber, DustyCloud.org
"Message-passing" vs "shared heap"
What does the firehose invite?
What does the PDS invite?
What does the JavaScript SDK invite?
PDS data is distributed
Event log


Sequenced by a Relay
Consumed by an AppView
(in practice, writes are a bit weird)
(reads are too)
CReate, Update, Delete
The PDS emits CRUD

Sync protocol: integrity over transport
Jetstream: simplicity
(we'll get back to that)
CReate, Update, Delete
You can't miss events.
Sync protocol: integrity over transport
CReate, Update, Delete
You can't be down.
Sync protocol: integrity over transport
CReate, Update, Delete
You can't switch (jet)streams.
Sync protocol: integrity over transport
What does the event log invite?
- Single instance
- Attached storage
- Low-power please
Databases: self-hosting

You can save all the likes in sqlite.
- asfd
B-trees and LSM trees
Raspberry Pi was an upgrade from cheap cloud hosting. They are pretty fast these days!
A confession
picture + spec of 4b
picture + spec of 5
UFOs on original Raspberry Pi Model B (2012)
- 700MHz ArmV6 💥
- One core 🔥
- 222MB 🚀
Making it right
picture + spec model b
asdf
The event log is Hard
Serif
By Phil Schleihauf
Serif
- 31