Segment change feed (poll)
Segment Sync S1: the change-log rows for a segment since cursor N - who entered / exited / re-entered. The response is ALWAYS a read of the committed append-only log (never an in-memory diff), so a poller that crashes before saving its cursor re-polls the same since and re-reads identical rows. The FIRST call bootstraps the snapshot and returns no rows (seed the initial members via /member-ids, so you never double-count). Runs under a non-blocking advisory lock (a concurrent call → 409). since > maxSeq → a 200 with reconcile:true, reason:cursor_ahead; since behind the prune watermark → 410 CURSOR_EXPIRED - both mean reconcile via /member-ids, never a silent empty-success. Derived segments are supported (their filterHash is the composite own+base - a base-filter edit flips it too); a cross-grain ?grain= request → 400 (save the pivot as a derived segment to sync it); the sync tables not yet provisioned → 503. Poll again with since = nextSince. Delivery is at-least-once (a crash-safe re-poll re-reads the same rows; a /member-ids-seeded member can also reappear as an early enter) - dedup per member id.
Request
- Base URLhttp://localhost:3009
- AuthHTTP bearer
Path parameters
Query parameters
Cursor - return rows with seq > since. Omit or 0 to read from the earliest retained row.
Response
A page of change rows (empty after bootstrap, or with a reconcile signal).
Changes
No recorded changes to this operation across all 1 revision of this API.