Not sure if this should be a section or a “feature” page.
Transactions act as buffers for operations on the project graph. Each transaction maintains a set of queues, where each queue holds a list of modifications to be applied to the graph. When any RGG method is executed, GroIMP automatically creates a transaction if one does not already exist. All subsequent graph modifications during that operation are pushed into the current transaction's queues.
Each operation on the project graph is performed through a transaction. These transactions are logged in a cache. It is possible to read through this log and apply the transaction in reverse enabling undo-ing the last modifications.