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