Each of the components that make up a transaction is developed as if it were a single-user component. In traditional multi-user application development, the developer needs to be aware of how multiple users are accessing a system. There are a number of areas where having multiple users accessing the same part of a system can cause problems. If two users are trying to update the same record at the same time, the system needs to arbitrate as to which user's updates are applied and which are ignored.
In a transaction processing system, the system deals with the intricacies of multiple users accessing a particular piece of data. The application and data objects appear to themselves to be the only ones interacting with the system. In reality, there could be tens, hundreds, or thousands of objects interacting with the exact same part of the system. The transaction server handles all of the interactions so that each component can assume that it is the only one interacting with the system at any one time.