86: Add AssetAZ Journal Service with durable PDE event journal and replayable consumers

This commit is contained in:
2026-09-12 15:10:06 +02:00
parent f1dd5ed9b1
commit edad01dbb9
32 changed files with 1076 additions and 0 deletions
@@ -0,0 +1,23 @@
## 1. Encoding and contracts
- [x] 1.1 Implement bounded PDE primitives and framing.
- [x] 1.2 Add event/service contracts and registry codecs with exact schemas.
## 2. Journal and consumers
- [x] 2.1 Implement record hashing, bounded readers, startup validation and durable fail-closed append.
- [x] 2.2 Implement independent virtual-thread replay, FIFO delivery, cutover and barriers.
- [x] 2.3 Wire passive codecs and journal process in the Hub.
## 3. Verification
- [x] 3.1 Run build and existing tests; verify issue invariants and diagnostics.
- [x] 3.2 Validate OpenSpec and review unstaged changes against scope.
## Validation results
- Normal Gradle build passed, including all four existing tests (zero failures/errors/skips).
- 78 temporary checks outside the repository passed: PDE ranges and bounds, exact schemas, raw hashes, full startup validation, 1024/1025-byte boundary, replay/live ordering, filtering, safe cursors, barriers, isolated degradation and uncertain force failure before publication.
- OpenSpec strict validation and git diff whitespace checks passed. No repository tests were added, following project policy.
- The fresh checkout omitted ignored conf/detag.conf; build validation used a local symlink to the existing configuration without changing its definitions, and a workspace-local Gradle cache.
- All changes remain unstaged and uncommitted on the fetched Gitea baseline.