Stitch any CI into Tangled
1// Package jetstream provides a reusable Bluesky Jetstream consumer.
2//
3// The package owns the mechanics that are common to firehose consumers:
4// configuring the upstream websocket client, filtering by record collection,
5// reconnecting after dropped reads, rewinding time-based cursors on reconnect,
6// persisting cursor progress, and distinguishing permanent bad-record failures
7// from transient handler failures.
8//
9// Callers provide a CursorStore and Handler, either through Config for a full
10// Consumer or directly on Processor when they already have events from another
11// source. The handler receives commit events for the configured collections and
12// should apply domain-specific mutations. If a record is permanently unusable,
13// the handler should return BadRecord(err) so the processor can advance the
14// cursor and avoid replaying the same broken event forever. Any other error
15// leaves the cursor unchanged so a later delivery can retry the event.
16package jetstream