June 2017
Intermediate to advanced
394 pages
8h 52m
English
Here comes the tricky part. How do we synchronize the Read Model with the Write Model? We already said we would do it by using Domain Events captured in a Write Model transaction. For each type of Domain Event captured, a specific projection will be executed. So a one-to-one relationship between Domain Events and projections will be set.
Let's have a look at an example of configuring projections so that we can get a better idea. First of all, we need to define a skeleton for the projections:
interface Projection { public function listensTo(); public function project($event); }
So defining an Elasticsearch projection for a PostWasCreated event would be as simple as this:
namespace Infrastructure\Projection\Elasticsearch; ...