Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Events #62

Open
the-avid-engineer opened this issue Jul 4, 2022 · 0 comments
Open

Support for Events #62

the-avid-engineer opened this issue Jul 4, 2022 · 0 comments
Assignees
Labels
feature A feature has been requested
Milestone

Comments

@the-avid-engineer
Copy link
Member

the-avid-engineer commented Jul 4, 2022

Is your feature request related to a problem? Please describe.
Commands are fundamentally ordered. It's very important that an entity built in the correct order because commands tend to affect the validity of other commands.

Events, on the other hand, shine best when they are used to communicate between different bounded contexts, and there are a few common "features" of using events this way:

  1. Out-of-order delivery
  2. At-least-once delivery (i.e., multiple deliveries are possible)

This would not only gear the EntityDb pack toward Event Sourcing, but also Event Driven Architecture.

Describe the solution you'd like
It may be beneficial to have a repository that can record events and not care about the order of events (concurrency is okay and tolerable) nor events that are delivered multiple times (duplicates will be ignored).

In addition to the abstraction solution, EventStore would be a good implementation candidate.

Additional context
Projections should not be restricted to reducing commands. It would be ideal if any source (Transaction, Communication) could be consumed. In order to achieve this, the IProjection<T> interface will likely break, bumping this to 10.0.0 milestone.

Much code related to transactions (ITransaction in the name) will need to be generalized to sources (ISource in the name)

Pending Question:

  1. Does EventStore throw an error if you send two events with the same event id to a single stream? Or does it just ignore the duplicate?
@the-avid-engineer the-avid-engineer changed the title Support for "Events" Support for Events Jul 4, 2022
@the-avid-engineer the-avid-engineer added this to the 8.0 milestone Jul 4, 2022
@the-avid-engineer the-avid-engineer added the feature A feature has been requested label Jul 4, 2022
@the-avid-engineer the-avid-engineer self-assigned this Jul 4, 2022
@the-avid-engineer the-avid-engineer modified the milestones: 8.0.0, 9.0.0 Jul 31, 2022
@the-avid-engineer the-avid-engineer modified the milestones: 9.0.0, 10.0.0 Oct 2, 2022
@the-avid-engineer the-avid-engineer modified the milestones: 9.1.0, 9.2.0 Nov 28, 2022
@the-avid-engineer the-avid-engineer modified the milestones: 9.2.0, 10.0.0 Dec 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A feature has been requested
Projects
None yet
Development

No branches or pull requests

1 participant