Consider adding support for multi-object transactions. 1. Modified objects would need to be write locked 2. Need a way to stage version changes 3. Need a way to access staged versions 4. Cache update logic needs to change 5. Should transactions expire, and what happens if they do?