Так что мне нравится базовая концепция CQS, где у вас может быть команда, которая записывает в одну базу данных и которая обновляет базу данных запросов, с которой вы читаете.Подтверждение ответа на запрос команды для повторных попыток
Однако рассмотрите сценарий, в котором вы вводите данные, и хотите предотвратить дублирование.
Использование новой записи данных сотрудника регистр служащего в качестве примера, работая через кучу заявок на ввод в реквизитах новых сотрудников:
- Возьмите верхний лист.
- Введите имя сотрудника и номер уникальной платежной ведомости в пользовательский интерфейс.
- Отправить.
- Положить бумагу в «завершенную кучу».
- Повторите.
Как вы теперь можете запретить пользователю вводить один и тот же номер платежной ведомости, например, если они отвлекаются и не могут вспомнить, были ли они уже введены ключом, а в «сообщении» нет вернулись к запросу db для поиска пользователя?
Но это именно тот процесс, который я описал, - вопрос находится на вашем шаге 1 - как вы знаете, что вы не просто отправили верхний лист, если вы проверяете до того, как сообщение обновило запрос дб? –
Потому что вы можете ограничить извлечение. Когда пользователь получил верхнюю запись, вы пометили ее как «взятую», что означает, что только 1 клиент получил это. – zsong