CQRS / ES - Meeting, 2017-04-23

CQRS / ES - Meeting, 2017-04-23

Participants: Alexander, Bastian, Robert, Sascha

Fix EventStore schema generation (see issue #42)

Bastian took over Sebastians Pull Request adding support for multiple Event Store backends.
This is an important feature (e.g. in order to publish events to different database tables/servers depending on the package) and it fixes the schema generation bug as a side-effect.

The PR is now overhauled and partly covered with tests, but there was one remaining conceptual challenge:
In order to determine the Bounded Context it currently uses the Event Type(s) when replaying / publishing events and the Stream name when reading events to reconstitute Aggregates.

We agreed that it makes sense to try out the following route:

  1. Use the Stream Name to determine the Bounded Context when publishing and reading events
  2. Use the package key of the Projector/EventListener class to determine the Bounded Context when replaying events

Bastian will push a follow-up

Alexander shared an idea to have a separate stream per projection. Currently we don’t know how to apply that approach to general purpose Event Stores (i.e. SQL implementation) but it’s an interesting idea to keep in mind (Related the linkTo feature of geteventstore.com)

Queries/Batch processing in Projections

Robert brought up the regular need for more extensive interaction with the projection state from within projector handlers.
Using the Finder for this is dangerous and error-prone because it uses a different Doctrine Unit of Work (Sascha has fixed the Documentation accordingly)

Bastian created a ticket collecting some of the ideas we discussed in order to tackle this (and to improve composability along the way)