Such as we write an distributed app spec which need access db.For multiply keys transaction access, we just wrapped it's ops as an action or put in a label if using pluscal. Is is enough ? In my humble knowledge, this way just enable single key linearizablity and transaction atomic. but no transaction isolation, am i right?
Always we may need external consistency or strict Serializable , or serializable , even snapshot isolation level.
So how do we use this api in an spec?
I see too many spec impl transaction to verfiy the consistency or the atomic. But What is the transaction api it expose? such as beginop, keyops, commit/abort?