Operational Transforms Instead of "Most Revisions Wins"

Nah, it can be done with an OpLog: a history of operations that have occurred on each device. Replay the OpLog and you have the transform without live propagation. (As a bonus, you could then even implement undo support!)

Realm did it: see here

It is possible for me to add my own Collection and write transaction history, sure. But if I’m paying $1,000/mo for Capella, this is the kind of thing I want that money used for. I pay for DBaaS precisely so I don’t HAVE to spend my time reinventing the wheel. I want to outsource conflict resolution to really smart database engineers who can do a better job and cover it with 7,000 unit tests. Querying my custom “transaction” collection inside the custom JavaScript conflict resolution handler: I’m not even sure that’s possible, for one, and the performance would probably be terrible.

Would this conflict resolution strategy be slower than the existing option? Yes. But if it were a choice, it would be the RIGHT tradeoff for many apps.

Capella and Couchbase have been a little frustrating because each time I say, “Hey, the competition has feature X and that’s really state-of-the-art. Can you guys do that?” The answer is, “Build it yourself.” If I have to build my own database system, what’s the point of paying for one, you know?