Como implementar um escopo de transação de memória em c #?

temos um cache no qual gostaria de colocar alguns escopos de transação, para que qualquer processo precise "confirmar" explicitamente as alterações que deseja fazer nos objetos em cache e possibilite reverter as alterações quando o processo falhar pela metade também.

No momento, estamos clonando profundamente os objetos em cache em solicitações de recebimento, funciona, mas não é uma solução limpa e envolve uma boa manutenção também.

Lembro-me de ouvir sobre alguma solução MTS (escopo de transação de memória) no .NetRocks há um tempo, mas não consigo lembrar o nome dela! Alguém sabe de uma boa estrutura MTS por aí? Como alternativa, se eu fosse implementar por conta própria, existem boas diretrizes / padrões sobre como fazer isso?

Obrigado,

EDIT: entendi minha abreviação completamente errada! Deveria ter sido STM, memória de transação de software

questionAnswers(1)

yourAnswerToTheQuestion