В киоске веб-сайта пользователь смог добавить товары в свою корзину, ввести всю необходимую информацию и нажать кнопку отправки. Отобразилось пользователю, пожалуйста, подождите, пока выполняется заказ.Обработка сетевых сбоев во время транзакции
За кулисами представление передало информацию контроллеру, контроллер, называемый бизнес-логикой, на карточную кредитную карту .. результат был успешным. Затем контроллер назвал бизнес-логику для сохранения порядка в базе данных ... этот результат был успешным. Следующее, что должен был сделать контроллер, - отправить перенаправление обратно в представление. Проблема заключается в том, что пользовательская связь потери в то время, так что Интернет никогда не получал перенаправление. Когда сетевое соединение было восстановлено (разговора несколько секунд), веб-страница по-прежнему показывала заказ, поэтому пользователь повторно отправил его. Итак, теперь у пользователя есть дубликат (разные идентификаторы). Как мне решить эту проблему? Я предполагаю, что это краевой случай, по крайней мере, я надеюсь, что так оно и есть.
О чем вы спрашиваете, это одна из многих проблем, решаемых полем [CQRS] (http://martinfowler.com/bliki/CQRS.html). Это обширная школа мысли о том, как следует делать архитектуру, поэтому я не предлагаю, чтобы вы переключились на нее полностью, пока что-то простое, как предложила Альбин. Однако, если вы заинтересованы в том, чтобы справляться с трудными сценариями, как это, вы должны прочитать его и заимствовать идеи по мере необходимости. –