Repository navigation
feat(events): implement Phase 22 durable event runtime - #29
Merged
Merged
Conversation
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.
Phase 21 preserves outbox obligations but does not deliver or process them. Phase 22 adds a local asynchronous PostgreSQL event runtime: publisher and consumer crashes redeliver the original identity/body while inbox recognition and local effects commit atomically.
roadrunner-eventswith Tokio polling, blocking SQL workers, source-ordered immutable transport, separate transport/application acknowledgements and role exclusion.0002_events.sqlwithout changing the original operational checkpoint, namespace or anchor format. Preserve the operational command/observation boundary and update its OpenAPI description.Validation: formatting and strict workspace Clippy pass; 234 workspace tests pass. Seven real event-storage tests and all five Phase 21 storage tests pass. Five actual event-process histories cover SIGKILL around append, transport ACK, partial effect/inbox COMMIT and delivery ACK, plus live asynchronous delivery, exclusion, inspection and graceful shutdown. All seven Phase 21 process cases also pass against the new schema. CI explicitly runs the real database/process suites sequentially.
Recorded release evidence contains 30 raw delivery samples with hardware/dataset/build/configuration and median/p95/p99. It includes psql observation/polling overhead and full retained-content hashing, so it is a local baseline without production latency/scalability claims.
The selected transport is a local PostgreSQL stream; no broker dependency is needed for this scope. Notifications are local durable obligations, with no remote sending or end-to-end exactly-once claim. Automatic event-triggered dispatch, physical observations from integration events, public remote-source input, parallel consumers, automatic failover and writable physical clones remain unsupported.
Deployment: stop writers, run the offline migration, retain an absolute
ROADRUNNER_EVENT_ANCHORSdirectory independently of DB backup rollback, then runroadrunner-events --run <world-key>. Seedocs/events.md,docs/phase-22-completion.mdanddocs/evidence/phase-22-verification.jsonfor contracts and evidence.