Using transactions
Transactions inside DocumentDB are applicable only in server-side code. This means that building a transactional system can be achieved, for example, by writing stored procedures. Since stored procedures exist on a collection level, transactions can only span one collection, and adding or modifying documents across collections is not supported at the time of writing.
DocumentDB handles all logic that is running inside a stored procedure or trigger a transaction explicitly. There is no need to start and commit a transaction whatsoever. This is explicitly managed by the execution engine of DocumentDB. If an exception is raised inside the stored procedure or trigger, the entire transaction is aborted accordingly. This prevents inconsistent data by default. A simple example of a transaction in a stored procedure is shown in the following snippet:
function TransactionExample(document) { var collection = getContext().getCollection(); var collectionLink = collection.getSelfLink...