A method for marking a transaction, comprising defining an application as a plurality
of states, wherein each of the plurality of states is associated with at least
one transition, specifying a transaction set comprising at least one of the plurality
of states, specifying a commit set comprising at least one of a plurality of states,
and marking the transaction using a transaction marking procedure, wherein the
transaction marking procedure marks the transaction based on the transaction set,
the commit set, and at least one of the plurality of transitions.