1. A method of ensuring consistency of concurrent transactions relating to a data model, the method comprising: providing a set of constraints relating to data in the data model; performing, using one or more processors of a computer, at least two transactions, wherein each of the at least two transactions has a corresponding start time, and relies on a corresponding snapshot of part or all of the data model as of the start time; wherein a current transaction of the at least two transactions has a current start time and a current target commit time, and wherein one or more concurrent transactions of the at least two transactions have committed to the data model at one or more intermediate times after the current start time and before the current target commit time; performing a commit processing check that automatically determines whether the current transaction can be committed to a memory of the computer consistently with the set of constraints from at least a) the snapshot of the current transaction and b) changes to the data model made by the one or more concurrent transactions; automatically committing the current transaction to the memory of the computer if it can be made consistently with the set of constraints; and automatically aborting the current transaction if it cannot be made consistently with the set of constraints.