"Single master, replicated to another region."
Why do you recommend against using a modern distributed database?
Is it that hard to spin up something like CockroachDB? In fact, it wouldn't surprise me that Wave are running CockroachDB as their Postgres foundation under the hood.
Call me maybe. This is a newer technology and the growing pains have been dramatic. I assume you've followed Jespen?
I use MongoDB all the time, for a lot of projects. But I'm also keenly aware of how many years they have struggled to pass the Jespen tests. I can also recall several times engineers from MongoDB have said "We have finally resolved all of the issues raised by Jespen" and then another bug was discovered.
Again, I use MongoDB all the time. But I'm aware it is simpler and safer to use Postgres, for many, many use cases.
Yes!
You might also want to check out autonomous deterministic testing, which is like Jepsen, but where you can explore many more state spaces by speeding up time, and where you can replay any distributed bugs instantly, just by replaying a seed.
This is a brilliant talk on these techniques:
FoundationDB — How I Learned to Stop Worrying and Trust the Database — https://www.youtube.com/watch?v=OJb8A6h9jQQ
I also work on a distributed database called TigerBeetle [1] where we use these new techniques. You can run our simulation tests yourself even. It's as simple as cloning the repo and running "scripts/vopr.sh", and let me know if you want a tour!
These testing techniques work so well that we've been running a bug bounty challenge with awards up to $8192 for anyone who can find a way to break it or crash it. It comes with the simulation testing all included so it's pretty easy to get started. [2]
[1] https://github.com/coilhq/tigerbeetle
[2] https://github.com/coilhq/viewstamped-replication-made-famou...
That gives me confidence.
[1] https://github.com/mongodb/mongo/wiki/Testing-MongoDB-with-A...