В этом случае вы можете реализовать простой сервис в стиле CRUD, который в основном выполняет вставку в таблицу Sql с ограничением первичного ключа.
Вставка произойдет только один раз. Когда дубликаты команд с одним и тем же значением, которое должно существовать только один раз, попадают в агрегат, агрегат вызывает службу, служба завершается ошибкой операции вставки из-за нарушения ограничения первичного ключа, выдает ошибку, завершается сбой всего процесса и никаких событий генерируется, нет отчетов на стороне запроса, может быть отчет о сбое в таблице для возможной проверки согласованности, где пользователь может запросить, чтобы узнать статус обработки команды. Чтобы проверить это, просто запросите снова и снова модель представления статуса команды с помощью Command Guid.
Очевидно, что когда команда содержит значение, которое не существует в таблице для проверки первичного ключа, операция завершается успешно.
Таблицу ограничения первичного ключа следует использовать только как службу, но, поскольку вы реализовали получение событий, вы можете воспроизвести события, чтобы перестроить таблицу ограничения первичного ключа.