@Mystere Это не имеет смысла. Сервисные автобусы сильно отличаются от МОК. Sagas устранит ваши расы и разрешит очень явные переходы состояний (сообщения). Однако вы можете просто уйти, используя временную таблицу.
шлом я использовал TransactionScope с настольными клиентскими приложениями для отката незавершенной многошаговой транзакции. Такой подход вряд ли будет работать в веб-приложении.
Кто-нибудь может предложить способы, которыми можно обеспечить откат нескольких шагов на нескольких страницах, если весь процесс не завершен? (их браузер падает или закрывается, например, в середине процесса)
Конечно, я мог бы записать во временную таблицу некоторого вида, а затем перенести окончательную запись в реальную таблицу за одну транзакцию, но это рискует привести к гонке. Я хотел бы начать транзакцию, обслуживать несколько страниц, каждая страница записывает часть транзакции в таблицу (ы), затем завершает транзакцию с фиксацией, и, если транзакция не завершена, она откатывается, когда сессия заканчивается
Или я не думаю, что правильно? Предложения?
Поскольку я использую MVC 3, EF 4.1 и Ninject, я не уверен, как это повлияет на решение, но я подумал, что включу эту информацию.