Set event ID when persisting messages#247
Closed
axlon wants to merge 1 commit intoEventSaucePHP:mainfrom
Closed
Conversation
Member
|
The way to pull this forward is to use a MessageDecorator. The package ships with a UuidMessageDecorator, which adds a UUID as the event ID, I just shipped a UuidV7 implementation, so you can use V4 of V7 or create one yourself. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Alternative to EventSaucePHP/MessageStorage#38
Currently when a message is persisted, the event ID is not set until the very last moment (when the message is inserted into the database). This causes outbox repositories and message dispatchers to receive message instances that do not have this header set.
This PR changes the
EventSourcedAggregateRootRepositoryto always set the event ID when constructing messages, so that repositories, outboxes and dispatchers always receive the same message headers. Unlike EventSaucePHP/MessageStorage#38, this covers both message repositories and dispatchers, the downside to this approach is that if someone uses a decorator to generate their own event IDs the aggregate root repository will now do useless work