Repository navigation
docs: state what the durable session log actually replays and retains - #59
Merged
Merged
Conversation
The SSE rules hedged persistence, retention, and replay together as unestablished. Replay mechanics were in fact established by the live coverage that lands with this pin, and retention is established by reading the server: the canon now says both, and hedges only what remains unpinned. Canon carries the mechanics the suite proves. The cursor is an exclusive aggregate sequence; one log.synced marker reports the watermark the replay was captured at, and it is a boundary rather than a durable event, so under follow the events committed while that replay was in flight arrive after it. Sequences are not contiguous, because the server omits types outside its durable manifest, the session union filters further, and a forked session reserves an inherited prefix. A cursor past the tail is accepted rather than refused and then suppresses live delivery until the aggregate overtakes it, so a cursor travels only within one server's lifetime. Canon also carries retention, which turns out to be the absence of a policy: nothing expires, prunes, or caps the log, compaction and revert rewrite projections rather than the log itself, and rows are deleted only with their session. Persistence is a server option that is off unless the server was started with it, which is why a default server answers a replay with the marker alone. The roadmap's open question narrows to the wire behaviour nothing upstream pins: that route has no server-level test there, and upstream has no production caller that passes after at all, so the status a malformed cursor answers and the fate of an idle follow connection are settled only here. The vocabulary entry and the streaming guide follow the same correction.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documentation only. The server-sent event rules hedged persistence, retention, and replay together as unestablished. Replay mechanics were established by the live coverage that landed in #58, and retention is established by reading the pinned upstream server, so canon now states both and hedges only what remains unpinned.
Mechanics the suite proves. The cursor is an exclusive aggregate sequence. One
log.syncedmarker reports the watermark the replay was captured at; it is a boundary rather than a durable event, so underfollowthe events committed while that replay was in flight arrive after it. Sequences are not contiguous, because the server omits types outside its durable manifest, the session union filters further, and a forked session reserves an inherited prefix. A cursor past the tail is accepted rather than refused and then suppresses live delivery until the aggregate overtakes it, so a cursor travels only within one server's lifetime.Retention, which turns out to be the absence of a policy. Nothing expires, prunes, or caps the log. Compaction and revert rewrite projections rather than the log itself, so a replay from an older cursor still returns everything before them. Rows are deleted only with their session. Persistence is a server option that is off unless the server was started with it, which is why a default server answers a replay with the marker alone.
What the roadmap's open question narrows to. The wire behaviour nothing upstream pins: that route has no server-level test upstream, and upstream has no production caller that passes
afterat all, so the status a malformed cursor answers and the fate of an idlefollowconnection are settled only by this repository's own live tests.The vocabulary entry and the streaming guide follow the same correction. No code changes, so the CI matrix is skipped by
paths-ignore.