Skip to content

Release v3.10.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:31
197cccf

Event source and stream definitions for the Elixir client, matching Chronicle 19.30.0. Definitions are optional; appends that don't use one behave exactly as before.

Added

  • use Chronicle.EventSources.EventSource with stream/2 declares a named event source, its streams and default concurrency dimensions. Definitions are discovered with event types (or passed as :event_sources) and registered at startup; duplicate source or stream names are rejected. (part of #100)
  • :event_source and :event_stream options on append/3, append_many/3, units of work and append_many_for_event_sources/2, plus per-entry event_source/event_stream on EventForEventSourceId for mixed-source transactions. Unknown sources, undeclared streams and contradicting explicit routing return clear errors before anything is sent. (part of #100)
  • Appends through a definition use its concurrency dimensions as the scope unless an explicit :concurrency_scope is given. (part of #100)
  • Reactor and reducer contexts expose :event_source, nil for events not appended through a registered source. (part of #100)
  • Documentation: https://github.com/Cratis/Chronicle.Elixir/blob/main/Documentation/event-sources.md (part of #100)

Changed

  • Requires cratis_chronicle_contracts ~> 19.30.