Skip to content

Releases: dogmatiq/dogma

Version 0.11.0

22 Feb 21:57
Compare
Choose a tag to compare
Version 0.11.0 Pre-release
Pre-release

Added

  • [BC] Add ProjectionCompactScope.Now()

Changed

  • [BC] ProcessMessageHandler.HandleEvent() now takes an ProcessRoot parameter
  • [BC] ProcessMessageHandler.HandleTimeout() now takes an ProcessRoot parameter
  • Process[Event|Timeout]Scope.ExecuteCommand() and ScheduleTimeout() can now be called after End()

Removed

  • [BC] Remove ProcessEventScope.Begin()
  • [BC] Remove ProcessEventScope.HasBegun() and ProcessTimeoutScope.HasBegun()
  • [BC] Remove ProcessEventScope.Root() and ProcessTimeoutScope.Root()

Version 0.10.0

11 Nov 02:25
Compare
Choose a tag to compare
Version 0.10.0 Pre-release
Pre-release

Added

  • [BC] Add ProjectionMessageHandler.Compact() and NoCompactBehavior
  • Add ValidatableMessage interface and ValidateMessage()

Version 0.9.0

05 Nov 20:53
Compare
Choose a tag to compare
Version 0.9.0 Pre-release
Pre-release

Changed

  • [BC] AggregateMessageHandler.HandleCommand() now takes an AggregateRoot parameter
  • [BC] fixtures.AggregateRoot now stores all its historical events internally
  • AggregateCommandScope.Destroy() no longer requires a prior call to RecordEvent()
  • AggregateCommandScope.RecordEvent() can now be called after Destroy()

Removed

  • [BC] Remove AggregateCommandScope.Root()

Version 0.8.0

03 Nov 04:51
Compare
Choose a tag to compare
Version 0.8.0 Pre-release
Pre-release

Changed

  • AggregateCommandScope.Root() can now be called for non-existent aggregate instances
  • AggregateCommandScope.Destroy() is now a no-op for non-existent aggregate instances
  • AggregateRoot.ApplyEvent() no longer has a hard requirement to panic with UnexpectedMessage

Removed

  • [BC] Remove AggregateCommandScope.Create()
  • [BC] Remove AggregateCommandScope.Exists()
  • [BC] Remove StatelessAggregateRoot and StatelessAggregateBehavior

Version 0.7.0

03 Nov 00:29
Compare
Choose a tag to compare
Version 0.7.0 Pre-release
Pre-release

Added

  • [BC] Add AggregateCommandScope.Exists()
  • [BC] Add ProcessEventScope.HasBegun() and ProcessTimeoutScope.HasBegun()

Changed

  • Allow engines to call AggregateRoot.ApplyEvent() with historical events
  • Clarify semantics of AggregateMessageHandler.New() and ProcessMessageHandler.New()
  • Clarify semantics of surrounding creating an aggregate instance within the same scope as it was destroyed
  • Clarify semantics of surrounding re-beginning a process instance within the same scope as it was ended

Version 0.6.3

14 Jan 00:48
Compare
Choose a tag to compare
Version 0.6.3 Pre-release
Pre-release
  • Clarify comparison semantics for identity names and keys

Version 0.6.2

09 Dec 03:52
54eba98
Compare
Choose a tag to compare
Version 0.6.2 Pre-release
Pre-release

Fixed

  • Exclude fixtures.AggregateRoot.ApplyEventFunc from JSON serialization

Version 0.6.1

19 Nov 00:10
892967a
Compare
Choose a tag to compare
Version 0.6.1 Pre-release
Pre-release

Added

  • Add DescribeMessage() and the DescribableMessage interface
  • Add the fixtures package, which contains message fixtures and mocks of various Dogma interfaces

Version 0.6.0

31 Jul 22:05
0f45b67
Compare
Choose a tag to compare
Version 0.6.0 Pre-release
Pre-release
  • [BC] ProjectionMessageHandler now uses an OCC strategy for event deduplication
  • [BC] Remove ProjectionEventScope.Key()

Version 0.5.0

23 Jul 23:29
cfa78ba
Compare
Choose a tag to compare
Version 0.5.0 Pre-release
Pre-release
  • Applications and handlers are now assigned an immutable "key"
  • Add NoTimeoutHintBehavior
  • [BC] Add k and v parameters to ProjectionMessageHandler.HandleEvent()
  • [BC] Add ProjectionMessageHandler.Recover() and Discard()
  • [BC] Add ProcessMessageHandler.TimeoutHint()
  • [BC] Add IntegrationMessageHandler.TimeoutHint()
  • [BC] Add ProjectionMessageHandler.TimeoutHint()
  • [BC] Add ProcessTimeoutScope.ScheduledFor()
  • [BC] Add ProcessEventScope.RecordedAt()
  • [BC] Replace configurer Name() methods with Identity()
  • [BC] Rename NoTimeoutBehavior to NoTimeoutMessagesBehavior
  • [BC] Rename ProjectionEventScope.Time() to RecordedAt()