Transactions provide a mechanism to coordinate between multiple parties that might be accessing the same data at the same time. These "parties" might be different instances of the same code like different users running the same application or nodes in a server cluster, parts of the same program or event different programs like an administration application, a "end user" application and/or "backend" server logic.