A transactionally aware resource is a system with all of these characteristics:
It can accept some update requests.
It can group a collection of update requests into a set, called a transaction.
It can guarantee that when processing a transaction's worth of update requests, either the entire transaction collection is processed or none of the transaction collection is processed.
It can guarantee that, once that transaction has been processed, there is no likely scenario under which any of the updates included in the transaction will be lost.
The most common transactionally aware resource is a database. We'll run into other transactionally aware resources shortly, but for now I'll limit my discussion to databases. ...