In a Domain Driven Design implementation with CQRS and Domain events, when a Command's handler performs a "change" on a Domain entity, and this "change" also causes more "changes" inside the same entity, should all these "changes" be performed by the same Command handler, or is it better to create and send different Commands to perform each of the consequent changes on this entity?
For example, let's say my Domain entity is a Match
which has a Minute
and a Status
properties, and an UpdateMatchMinuteCommand
handler updates the Match
's Minute
value by invoking a class method of the entity. But based on some business logic, inside the class method, this Minute
change causes also a change on the Status
property of the Match
. Shall both of these changes (Minute
and Status
) take place inside the same class method mentioned earlier?
Or is it more appropriate for the class method, after updating the Minute
value, to publish a MatchMinuteChangedDomainEvent
, which in turn when handled will send an UpdateMatchStatusCommand
, which in turn when handled will invoke another class method of the Match
entity to update the value of the Status
property?
Which of the above approaches would be more suitable to propagate consequent state changes inside the same Domain entity?
Thanks in advance