Смесительная структура сценария транзакции с DDD / CQRS

StackOverflow https://stackoverflow.com/questions/3041303

Вопрос

Вот ситуация, чтобы поддержать нашу устаревшую систему, нам нужно вставить в таблицу всякий раз, когда пользователь входит в систему. Это в основном операция CRUD, поэтому на самом деле не имеет смысла создавать репозиторий / Entity / Command / событие Для этого, поскольку это вообще не связано с любыми бизнес-правилами. Единственная выгода для создания команды CQRS состоит в том, что эта база данных пишеток может случиться асинхронно под этой моделью. Который является лучшим маршрутом, чтобы взять?

  • Используйте CQRS, а затем вызовите хранимые программы. При обращении с этой командой?
  • Просто вызовите базу данных прямо в контроллере (я использую ASP.NET MVC)
Это было полезно?

Решение

Если вы используете (и упорные) события для возможного воспроизведения, то имеет смысл сделать запись на устаревших дБ в рамках обработчика событий (подумайте «шлюз»). Если вам нужно воспроизвести это событие в будущем, вы можете поменять поменять поддельный обработчик, который не переносит запись.

Ваш контроллер должен действительно быть только слоем перевода между и HTTP-запросом и командой для вашего домена. Письмо до БД (даже наследие, не доменный доступ) не имеет смысла там, ИМХО. Установка логики в обработчик событий делает взаимодействие очень явно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top