You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Construct Chronicle reactors and reducers through Arc dependency injection #93
Chronicle.TypeScript now lets a host activate reactors and reducers (ChronicleOptions.artifactActivator, Cratis/Chronicle.TypeScript#121) and gives reactor handlers the event store and read models of their observation. Plug Arc's DI into it from withChronicle, like Arc for .NET composes Chronicle with the host container:
activate each delivered batch in an Arc service scope for the observation's tenant (namespace), with delivery correlation and cancellation, resolving the artifact from Arc DI (constructor dependencies);
a supported Core API to run the handler and returned effects inside that scope, so currentServices()/currentContext() work in handlers;
pin Arc's existing Chronicle services (ChronicleReadModels etc.) to the delivery's store;
drain in-flight deliveries before scopes and singletons are disposed on shutdown, and pass the delivery signal to commands returned from reactors;
avoid duplicate registrations across builder services, options.services and decorated lifetimes;
define the result when scope disposal fails before acknowledgement.
Requires the @cratis/chronicle release that contains #121.
Increment A2 (shutdown participants, registry-owned coordinated shutdown; no-participant path unchanged) shipped in #127 / v0.45.0. Next: A3 Chronicle fallback registration, A4 activator, A5 store pinning and returned-command signal, A6 runtime shutdown, live kernel and docs. Also #121 (pre-existing synchronous closeWebSockets leak) can now be fixed on top.
Increment A4 (preview opt-in scoped activation, activateArtifactsInScopes) shipped in #135 / v0.48.0. Remaining: A5 (pin Arc Chronicle services to the delivery store, pass the delivery signal to returned commands) and A6 (enable by default, caller-owned clients, raise the Chronicle peer floor to 6.17, live-kernel tests).
Activity
28 remaining items
woksin commentedon Sep 29, 2026
Increment A2 (shutdown participants, registry-owned coordinated shutdown; no-participant path unchanged) shipped in #127 / v0.45.0. Next: A3 Chronicle fallback registration, A4 activator, A5 store pinning and returned-command signal, A6 runtime shutdown, live kernel and docs. Also #121 (pre-existing synchronous closeWebSockets leak) can now be fixed on top.
woksin commentedon Sep 29, 2026
Increment A3 (discovered reactors and reducers registered as deferred scoped fallbacks) shipped in #131 / v0.46.0. Next: A4 activator.
woksin commentedon Sep 29, 2026
Increment A4 (preview opt-in scoped activation, activateArtifactsInScopes) shipped in #135 / v0.48.0. Remaining: A5 (pin Arc Chronicle services to the delivery store, pass the delivery signal to returned commands) and A6 (enable by default, caller-owned clients, raise the Chronicle peer floor to 6.17, live-kernel tests).
Offer discovered classes to integrations added later
Add a Chronicle artifact activator for Arc scopes
Let withChronicle opt in to scoped artifact activation
Satisfy lint in the Chronicle artifact activator
Keep arc.chronicle loadable on the Chronicle peer floor
Limit scoped activation's registration changes to apps that opt in
Specify activator wiring, construction shutdown and lease failures
Correct scoped activation docs for returned commands and tenants
Make the Chronicle peer floor check recognize every import form
Require Chronicle 6.17 when activating artifacts in scopes
woksin commentedon Sep 29, 2026
All increments (A1–A6) are released; A6 shipped in #137 / v0.50.0. Scoped activation remains an opt-in option (activateArtifactsInScopes).