Class: Synapse::EventSourcing::ConflictResolvingUnitOfWorkListener
- Inherits:
-
UnitOfWork::UnitOfWorkListener
- Object
- UnitOfWork::UnitOfWorkListener
- Synapse::EventSourcing::ConflictResolvingUnitOfWorkListener
- Defined in:
- lib/synapse/event_sourcing/conflict_resolver.rb
Overview
Unit of work listener that detects if there is a conflict before an aggregate is committed If there is a potential conflict, a conflict resolver determines how to resolve the conflict.
Instance Method Summary collapse
- #initialize(aggregate, unseen_events, conflict_resolver) ⇒ undefined constructor
- #on_prepare_commit(unit, aggregates, events) ⇒ undefined
Methods inherited from UnitOfWork::UnitOfWorkListener
#after_commit, #on_cleanup, #on_event_registered, #on_prepare_transaction_commit, #on_rollback, #on_start
Constructor Details
#initialize(aggregate, unseen_events, conflict_resolver) ⇒ undefined
24 25 26 27 28 |
# File 'lib/synapse/event_sourcing/conflict_resolver.rb', line 24 def initialize(aggregate, unseen_events, conflict_resolver) @aggregate = aggregate @unseen_events = unseen_events @conflict_resolver = conflict_resolver end |
Instance Method Details
#on_prepare_commit(unit, aggregates, events) ⇒ undefined
34 35 36 37 38 |
# File 'lib/synapse/event_sourcing/conflict_resolver.rb', line 34 def on_prepare_commit(unit, aggregates, events) if potential_conflicts? @conflict_resolver.resolve_conflicts @aggregate.uncommitted_events.to_a, @unseen_events end end |