====== Graph modifications ====== According to the [[:groimp-platform:xl-language|XL language specification]], the XL queries are applied in parallel. In order to make sure the queries and rules are applied in parallel without concurrency access, GroIMP implementation use transactions and queues. ===== Transaction ===== GroIMP transactions work as buffers of operations on the graph. A transaction includes a set of queues that contains the list of modifications to be applied on the graph. When applied, each RGG method get a transaction automatically (created if needed) and all modifications are pushed into the queues of the current transaction. ===== Queues ===== There are four main queues: * Added node * Deleted Node * Attribute changed * Edge changed