Approve spec 067: durable journal retention and write-path limits#642
Open
enricopiovesan wants to merge 1 commit into
Open
Approve spec 067: durable journal retention and write-path limits#642enricopiovesan wants to merge 1 commit into
enricopiovesan wants to merge 1 commit into
Conversation
Closes the remaining spec gap in issue #593's Definition of Done that 066-durable-identity-event-delivery left open: how expired journal data is physically reclaimed (whole-segment deletion, bounded by a rollover cap) and what publish() does when a durable write stalls (bounded timeout, hard-fail with journal_write_timeout, no silent in-memory degradation). Decided via a structured brainstorm session; recorded as ADR-0006 and Decision 17. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Summary
036-event-subscription-replaycovering durable event journal permanence.066-durable-identity-event-delivery(approved via docs: record blocker-resolution architecture decisions #631) already answered most of Permanence: Durable event journal beyond in-memory retention window (spec 036) #593's Definition of Done, but left two operational questions open: how expired journal data is physically reclaimed, and whatpublish()does when a durable write stalls.067-durable-journal-retention-and-write-limits, a narrow amendment closing those two gaps, decided via a structured brainstorm session:publish()waits up to a configured timeout for the durable write to complete, then hard-fails with a distinctjournal_write_timeouterror (event rejected, not silently downgraded to in-memory-only delivery) and a structured audit event, rather than blocking indefinitely.needs-spec/blocked/future→no-spec-neededand moved to Project 1Ready, matching how sibling issue Security: Propagate subject_id/actor_id into TraverseEvent envelopes and subscription filters (spec 030 FR-006/016) #591 was unblocked from the same spec cluster (the issue itself now carries the implementation work directly rather than spinning off a separate ticket).Governing Spec
Project Item
Relates to #593 (spec-definition Definition of Done now satisfied; implementation is tracked under #593 itself, now Ready)
Validation
jq empty specs/governance/approved-specs.json— valid JSON.bash scripts/ci/spec_alignment_check.sh— passes locally against this branch.bash scripts/ci/pr_body_check.sh— passes locally against this PR body.