Skip to content

Route commands and aggregates through Chronicle event source definitions - #182

Merged
einari merged 3 commits into
mainfrom
feature/registered-event-source-routing
Oct 3, 2026
Merged

einari merged 3 commits into
mainfrom
feature/registered-event-source-routing

Conversation

@einari

@einari einari commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Commands and aggregates can now route their events through a Chronicle event source definition and stream instead of free-form strings. The string decorators keep working.

Added

Changed

  • Development and sample dependencies move to @cratis/chronicle 6.49.0; the peer floor stays ^6.29.0.

einari added 2 commits October 3, 2026 09:14
Add the eventSourceDefinition decorator, per-event source and stream replacement as
a unit, startup validation, and aggregate source/stream guarding. Pin
@cratis/chronicle 6.49.0 for development and adjust the unsupported-projection specs
for the in-memory arithmetic support added in that release.
Add command, aggregate, nested transaction, mixed override, legacy and
older-store specs, a live kernel check, and the Event source definitions page.
@einari einari added the minor New backward-compatible capabilities label Oct 3, 2026
@einari

einari commented Oct 3, 2026

Copy link
Copy Markdown
Contributor Author

Checklist (reviewer-facing; verified locally on feature/registered-event-source-routing):

  • @eventSourceDefinition for commands and aggregates; startup validation; per-event unit replacement; raw override wins; definition concurrency only without explicit scope or flags
  • Specs: command, aggregate, nested transaction, mixed override, concurrency flags, older store, legacy string routing (full yarn test: 1199 files, 3471 specs pass)
  • yarn build, check:declarations, check:consumers, check:chronicle-peer-floor (loads against SDK 6.29.0), typecheck, lint, docs:lint, docs:snippets, docs:examples, set-version --check
  • Live kernel: ARC_CHRONICLE_TEST_SUITE=event-source-routing bash Source/Chronicle/run-integration.sh against cratis/chronicle:19.30.0-development on port 18800 (4/4 pass, including the native fail-closed guard)
  • Screenplay grammar/generation: out of scope (owner-managed)
  • Independent review, CI

Part of #181 and Cratis/Arc#2987; neither is closed by this PR.

@einari

einari commented Oct 3, 2026

Copy link
Copy Markdown
Contributor Author

Independent review (head a745d42): no blocking defects. Added a clear diagnostic and spec for event source thunks that return neither a class nor a name. Verified: full suite 1200 files/3475 specs, build/typecheck/lint/consumers/declarations/docs, peer-floor, runtime load against real @cratis/chronicle 6.29.0 (string routing works, definition use fails with the 6.49.0 message), live suites against isolated kernel 18800: existing 4/4 and event-source-routing 4/4.

@einari
einari marked this pull request as ready for review October 3, 2026 07:56
@einari
einari merged commit df039f3 into main Oct 3, 2026
@cratis-direct
cratis-direct Bot deleted the feature/registered-event-source-routing branch October 3, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor New backward-compatible capabilities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant