I think a lot of developers who think they have referential integrity and strong consistency requirements are mislead. I've seen the case where for example User A is leaving Company Z and the developers have, for some reason, rigged it so removing A's access to all documents in the world has to happen in one giant cross-shard transaction, because it's consistent which means it's correct. But ... that's crazy. There's a hundred equally-correct ways to do it with tombstones and ordering and without cross-shard or even cross-row transactions. If you give a developer something that looks like BigTable they'll learn to deal with ordering, instead of using atomicity as a crutch.