Для начала вам определенно понадобится разместить денормализатор в отдельном процессе.Оттуда вы можете опубликовать в своей инфраструктуре обмена сообщениями события, происходящие в домене.Одна из простых стратегий, которая поможет ускорить денормализацию, - это разбить вещи на части по типу сообщения / события.Другими словами, вы можете создать отдельную очередь для каждого типа сообщений и затем подписать денормализатор (используя шину сообщений) на соответствующие события.Преимущество этого состоит в том, что у вас нет сообщений, накладывающихся друг на друга - все начинает работать параллельно.Единственные места, где вы можете испытывать некоторые разногласия, это таблицы, которые слушают несколько типов.Тем не менее, теперь вы распределили нагрузку между многими конечными точками.
Пока вы используете какую-либо инфраструктуру обмена сообщениями, вы не потеряете сообщения о событиях при попытке денормализации.Вместо этого после определенного числа повторных попыток сбоя сообщение будет считаться «ядом» и перемещено в очередь ошибок.Просто следите за ошибкой в очереди.Когда сообщение находится в очереди ошибок, вы можете проверить свои журналы, чтобы выяснить, почему оно там, исправить проблему, а затем переместить ее обратно.
Еще одно соображение заключается в том, что пример Марка Нийхофа несколько устарел.В группе Google DDD / CQRS .
имеется ряд платформ CQRS, а также множество советов.