@Mystere Это не имеет смысла. Сервисные автобусы сильно отличаются от МОК. Sagas устранит ваши расы и разрешит очень явные переходы состояний (сообщения). Однако вы можете просто уйти, используя временную таблицу.

шлом я использовал TransactionScope с настольными клиентскими приложениями для отката незавершенной многошаговой транзакции. Такой подход вряд ли будет работать в веб-приложении.

Кто-нибудь может предложить способы, которыми можно обеспечить откат нескольких шагов на нескольких страницах, если весь процесс не завершен? (их браузер падает или закрывается, например, в середине процесса)

Конечно, я мог бы записать во временную таблицу некоторого вида, а затем перенести окончательную запись в реальную таблицу за одну транзакцию, но это рискует привести к гонке. Я хотел бы начать транзакцию, обслуживать несколько страниц, каждая страница записывает часть транзакции в таблицу (ы), затем завершает транзакцию с фиксацией, и, если транзакция не завершена, она откатывается, когда сессия заканчивается

Или я не думаю, что правильно? Предложения?

Поскольку я использую MVC 3, EF 4.1 и Ninject, я не уверен, как это повлияет на решение, но я подумал, что включу эту информацию.

Ответы на вопрос(2)

Ваш ответ на вопрос