= Term: Transaction =
In !InfoGrid, all modifying access to [wiki:MeshObject MeshObjects] in a MeshBase must be performed within [wiki:Transaction] boundaries. Read-only access, or access for the purpose of receiving [wiki:Event Events] does not require a [wiki:Transaction].
Because distributed !InfoGrid applications can be composed of many distributed [wiki:Node Nodes] that are not necessarily even under control by the same entity, !InfoGrid [wiki:Transaction Transactions] are necessarily less strict than traditional ACID transactions. They are used primary for the following reasons:
* data modified during a [wiki:Transaction] only gets written to persistent storage when the [wiki:Transaction] completes. This is an efficiency measure.
* data modified during a [wiki:Transaction] only gets conveyed to another NetMeshBase via [wiki:XPRISO] once the [wiki:Transaction] completes. This simplifies processing on the receiving end, and improves efficiency.
* two threads performing updates cannot get into each other's way.
See also:
* MeshBase
* NetMeshBase
* [wiki:XPRISO].