Мне любопытно, как вы осуществляете доступ к данным.Если вы используете .NET, я бы провел некоторое исследование System.Transactions.TransactionScope ().Это альтернатива транзакциям, как упоминалось ранее, в SQL и зависит только от реализации уровня доступа к данным (например, Entity Framework или Linq to SQL против хранимых процедур или обычного T-SQL)
http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx
Помимо этого предложения, вы, как разработчик, можете контролировать такие крайние случаи, как эти.Например, если пользователь находится в середине многоступенчатого процесса;Именно здесь бизнес-правила и варианты использования определяют, как вы должны обрабатывать такие сценарии.Реализация транзакционного состояния может быть вариантом, при котором одни отклоняют ненужные данные, а другие сохраняют их на случай, если пользователь вернется.Учитывая это, я бы сказал, что это скорее проблема дизайна, чем проблемы разработки.
Надеюсь, это поможет.Ура!