Rebasely Beta: data may be purged

examples/live-notes Public

Markdown · 846 B · at 70b1506

live-notes

Plain-text notes several people edit at once. Each note is one Durable Object, which orders every edit and passes it on to the other editors over WebSockets.

How it works

  • [[conflict-strategy]]: how two people typing at once end up with the same text.
  • [[note-room]]: the Durable Object behind a note, its storage, and hibernation.
  • [[wire-protocol]]: the messages on the socket.
  • [[snapshots]]: the copy of every note in R2 every 100 versions, and how to read them.

Decisions

  • [[0001-single-sequencer-per-note]]: the room is the only place edits are ordered.
  • [[0002-drop-inserts-inside-concurrent-deletes]]: the one rule that keeps the transform small.
  • [[0003-snapshots-in-r2]]: history lives in R2, not in the room.

Guides

  • [[local-dev]]: run it on your machine, open two tabs, and watch the edits cross.