Design consideration: Support transactions
One of the requirements made of ingestion is to support transactional capabilities while storing records. This would allow any process interacting with the Storage API to perform the following:
- Begin a transaction
- Modify one or more records (Create, Update, Delete, Purge) without any additional activity occurring (i.e., sending notifications)
- Commit the transaction (persist all modifications in entirety with anyone error resulting in a rollback) - on success, release all notifications generated through the record modifications
- Rollback the transaction (undo all modifications)
I'm sure there are other considerations involved with adding transactional support. These are some early thoughts to initiate the discussion.
The expectation is that this is feature is not considered until after Release 3.