Как я могу избежать использования источников событий Prooph?

Концепция Event Sourcing, на мой взгляд, заключается в том, что Event Sourcing связан с уровнем домена, который не может быть связан с уровнем инфраструктуры. поэтому я не буду использовать компонент Prooph / Event-Sourcing, и поэтому команда Prooph не будет поддерживать компонент Event-Sourcing. ( эта статья упоминается)

Вопрос наступает, Aggregate, DomainEvent и т. Д. Принадлежат слою Domain, они помещаются в компонент Event-Sourcing. Хранилище событий относится к слою инфраструктуры, поэтому я могу напрямую использовать компонент prooph / event-store. Тем не менее, я нашел класс Prooph\EventSourcing\Aggregate\AggregateRepository используется в prooph/event-store-symfony-bundleпочему AggregateRepository помещается в источник событий? Я считаю, что Репозиторий к Инфраструктуре близок, пакет хранилища событий Symfony больше не должен использовать компонент источника событий, и Репозиторий также не должен быть помещен в источник событий.

Это меня смущает. поэтому я не могу сейчас использовать prooph / event-store.

Как вы думаете?

1 ответ

Решение

Репозиторий является связующим звеном между моделью домена и инфраструктурой. Он включен в компонент поиска событий, потому что хранилище событий не заботится о агрегатах и ​​их организации вообще. Хранилище событий управляет потоками событий. Только хранилище вносит это в форму. Он использует возможности потока событий четного хранилища для управления историей событий агрегатов. Следовательно, хранилище также является вашей ответственностью. Вы правы в том, что новая версия комплекта Symfony больше не должна включать реализацию репозитория, а только предоставляет prooph/event-store. Это еще не сделано. Фактически, поддержка prooph/event-sourcing поддерживается до конца 2019 года, поэтому мы не спешим.

В любом случае, я настоятельно рекомендую взглянуть на Event Machine. На данный момент он основан на Prooph / Event-Sourcing, Service-Bus и Event-Store, но уже предоставляет уровень абстракции и способ полностью отделить модель домена и другие части вашей системы от Prooph и Event Machine. Просто сделайте урок, чтобы узнать больше об этом (занимает 4-6 часов).

Другие вопросы по тегам