But he may decide to compose the transaction based on business logic as in that example. I am not sure how realistic that is though .. do u think we can forego this ? This is a decision we need to take upfront because it's not easily revertible. Another option which makes it type safe as well while giving the flexibility of having intermittent business logic is to do something like https://github.com/ServiceStack/ServiceStack.Redis/wiki/RedisTransactions. I had a look, didn't like the API.