very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
rust fjall at-protocol atproto indexer

[relay] put only what an event changed onto the repo row master

the relay worker read a repo row, could block on resolve_doc or a status probe, then wrote the whole row back without the repo lock, so a backfill that committed in between had its root rolled back to what the relay read, and a repo erased in between got its row back. the handlers now stage the row, and at commit the worker takes the repo lock, re-reads the row and rebases its change onto it, or writes nothing if the row is gone. the lock covers only the re-read and the commit, never a network call, and a row the relay just created is written as is.


+276 -42
3 changed files