update Atomic class to make use of public transaction module-level API functions
|Reported by:||Gary Wilson||Owned by:||Gary Wilson|
|Component:||Database layer (models, ORM)||Version:||1.6|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||yes|
Description (last modified by )
Currently, the class operates using the connection object directly; however, this makes it more difficult for libraries that need to customize transaction management, e.g. https://github.com/jmoiron/johnny-cache (see also https://github.com/jmoiron/johnny-cache/issues/40).
Ideally, I believe that wrapping the entire transaction API into a class and making it configurable would be even better, as it would allow for transaction management customization without monkey patching. That said, I propose we at least make use of the public API functions for the 1.7 release, as that makes the transactions interface backwards-compatible with versions before the Atomic class landed.