Skip to content

Releases: dogmatiq/dogma

Version 0.25.0

07 May 01:00
v0.25.0
8419a8c

Choose a tag to compare

Version 0.25.0 Pre-release
Pre-release

Changed

  • [BC] ViaAggregate() and ViaProcess() now require the root type to be a pointer, enforced via type constraints.
  • [BC] StatelessProcessRoot methods now use pointer receivers.

Version 0.24.0

05 May 07:42
v0.24.0
df30989

Choose a tag to compare

Version 0.24.0 Pre-release
Pre-release

This release introduces ProcessScope.Mutate(), which replaces direct mutation of the process root, giving the engine an explicit signal that state has changed. Existing process handlers that mutate their root directly are now incorrect but will still compile — review all process handlers carefully.

It also renames the "timeout" concept to "deadline", aligning with Go's convention that a deadline is a specific point in time rather than a duration. The semantics are unchanged.

Added

  • [BC] Added ProcessScope.Mutate() method.

Changed

  • [BC] Renamed Timeout to Deadline.
  • [BC] Renamed TimeoutValidationScope to DeadlineValidationScope.
  • [BC] Renamed ProcessMessageHandler.HandleTimeout() to HandleDeadline().
  • [BC] Renamed ProcessTimeoutScope to ProcessDeadlineScope.
  • [BC] Renamed ProcessScope.ScheduleTimeout() to ScheduleDeadline().
  • [BC] Renamed NoTimeoutMessagesBehavior to NoDeadlineMessagesBehavior.
  • [BC] Renamed SchedulesTimeout() to SchedulesDeadline().
  • [BC] Renamed SchedulesTimeoutRoute to SchedulesDeadlineRoute.
  • [BC] Renamed SchedulesTimeoutOption to SchedulesDeadlineOption.
  • [BC] Renamed RegisterTimeout() to RegisterDeadline().
  • [BC] Renamed RegisterTimeoutOption to RegisterDeadlineOption.

Version 0.23.0

25 Apr 10:14
v0.23.0
3a1c530

Choose a tag to compare

Version 0.23.0 Pre-release
Pre-release

This release genericizes AggregateMessageHandler and ProcessMessageHandler by their root type, providing compile-time type safety for aggregate roots and process roots.

Changed

  • [BC] StatelessProcessRoot is now an exported struct type instead of a package-level variable.
  • [BC] The following types and functions are now parameterized by their concrete AggregateRoot or ProcessRoot type:
    • AggregateMessageHandler
    • AggregateCommandScope
    • ProcessMessageHandler
    • ProcessScope
    • ProcessEventScope
    • ProcessTimeoutScope
    • NoTimeoutMessagesBehavior
    • ViaAggregate()
    • ViaProcess()

Added

  • Added UntypedAggregateMessageHandler() and UntypedProcessMessageHandler().
  • Added UnwrapHandler() for recursively unwrapping handler adaptors.

Version 0.22.0

24 Apr 02:55
v0.22.0
7417f19

Choose a tag to compare

Version 0.22.0 Pre-release
Pre-release

Changed

  • [BC] ProcessRoot.ProcessInstanceDescription() now accepts an ended parameter that is true if ProcessScope.End() has been called.

Version 0.21.0

19 Apr 10:29
v0.21.0
240850a

Choose a tag to compare

Version 0.21.0 Pre-release
Pre-release

Added

  • [BC] Added AggregateRoot.AggregateInstanceDescription().
  • [BC] Added ProcessRoot.ProcessInstanceDescription().

Version 0.20.0

06 Apr 00:58
v0.20.0
0a28351

Choose a tag to compare

Version 0.20.0 Pre-release
Pre-release

Changed

  • [BC] Callers that use WithIdempotencyKey() must retry ExecuteCommand() until it returns nil, or the command may be lost.

Version 0.19.1

04 Apr 22:46
v0.19.1
8fe5b3f

Choose a tag to compare

Version 0.19.1 Pre-release
Pre-release

Added

  • [ENGINE BC] Added WithEventObserver() to support observing events recorded by a specific invocation of ExecuteCommand().

Version 0.19.0

07 Dec 21:07
v0.19.0
d1f6384

Choose a tag to compare

Version 0.19.0 Pre-release
Pre-release

Added

  • Added ConcurrencyPreference enumeration

Changed

  • Replaced use of IntegrationConcurrencyPreference and ProjectionConcurrencyPreference with ConcurrencyPreference.

Removed

  • [BC] Removed IntegrationConcurrencyPreference type alias.
  • [BC] Removed ProjectionConcurrencyPreference type alias.

Version 0.18.1

06 Dec 21:45
v0.18.1
3427532

Choose a tag to compare

Version 0.18.1 Pre-release
Pre-release

Added

  • [ENGINE BC] Added IntegrationMessageConfigurer.ConcurrencyPreference() method.
  • [ENGINE BC] Added ProjectionMessageConfigurer.ConcurrencyPreference() method.
  • Added MaximizeConcurrency and MinimizeConcurrency enumeration values for use with the new Concurrency() methods.

Version 0.18.0

21 Nov 22:12
v0.18.0
6de155c

Choose a tag to compare

Version 0.18.0 Pre-release
Pre-release

Added

  • [BC] Added ProjectionMessageHandler.Reset() method.