Quando parliamo di transazioni pensiamo sempre alle transazioni Two-phase commit dei database relazionali. Questo tipo di transazione è molto più vicino alla tecnologia rispetto al nostro mondo "umano". Anzi, in natura non credo sia possibile, per ora, applicare tale concetto...almeno sino a quando non riusciamo a tornare indietro nel tempo cancellando un'azione.
Ora, un DBA mi dirà: e chi se ne fre..., per me è importante mantere il dato consistente". vero ! Ok, dove voglio arrivare allora ? Ho iniziato a trasporre il concetto 2PC al mondo Web Services, la dove le innumerevoli latenze insite nei web services (reti, protocolli, de/serializzazioni, ecc) sono molto più vicine al concetto di "compensation" (chi ha usato MS Biztalk Server) e quindi al nostro mondo. Di fatto, un'azione non si cancella, ma viene compensata. Una polizza non si cancella, si annulla; un accredito non si cancella, si addebita; una gomma bucata non si cancella, si aggiusta :-))
Ecco che allora, le specifiche WS-Transaction vengono considerate obsolete (prima ancora che qualcuno le implementi) per fare spazio a tre altre specifiche (WS-Coordination, WS-AtomicTransaction e WS-BusinessActivity) che regolamentano meglio il mondo "reale" e non solo quello delle macchine (non è esattamente così, ma per dare il senso). E' solo filosofia ?