Skip to content

Conversation

@nomba
Copy link
Owner

@nomba nomba commented Aug 27, 2023

Текущие правки в реквесте:

  • Логика Accounting с отправкой события по транзакции
  • Добавление события TaskCreatedV2 без обработки

Что хочется доделать:

Во всей домашке используется подход, при котором источником всех событий в системе является Domain Layer НЕ Application (как в классической реализации)!.

Аггрегат Task.cs по действию Reassign сохраняет события у себя и во время сохранения в БД происходит пубдикация Domain Event события в памяти TaskReassignedDomainEvent.cs. По этому событию происходит мапинг Streaming (данные) TaskUpdatedStreamingEvent.cs и Behavior (оно же бизнес-событие) TaskReassignedBehaviourEvent.cs событий для message broker. Внутрення публикация в памяти реализована с помощью MediatR (Publish/Subscribe).

До сих пор на подводные камни не наткнулся. Естественно, плата за консистентное состояние (нельзя просто так кинуть события в любом из контроллеров/сервисов) - это overhead по созданию механизма публикации.
Хочется дореализовать всю логику, плюс посмотреть как ляжет Outbox pattern в описанную концепцию, также для стриминга использовать не модели из Domain Layer, так как они должны обеспечивать инкапсуляцию, а отдельные "открытые".

@nomba nomba requested a review from davydovanton August 27, 2023 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants