Most databases (SQL) where designed before the internet, that is a major flaw in them and this instead uses HTTP from the start and JSON in regular files. So it's simpler.
But it also has authentication, relational values, indexing and it's async. joint parallel distributed. So it's versatile and powerful without becoming complex and heavy!
It allows you to have coherent data at many locations around the world without a big complex monster like described in the article.
The only downside is disk space!
What you don't understand; always hurts in the end.
Also there is no perfect, those guarantees are lies.
What if you have a new requirement that goes against the grain of your data structures? Do you then have to refactor your entire application? How do you know if your algorithms are efficient, if they are using the right indexes? What happens in your platform if you have a software error during a write? Will you end up with incomplete data? What if two users try to change the same data at the same time, who will win, who will see what? What about hardware failures, power outages, or bit rot?
Essentially, you need to ask yourself these questions every time you make a change to your application, keeping in mind how all the parts of your program interact and what failure modes these interactions can cause. If you ignore these questions and don't have abstractions to take care of them, you will drown in complexity.
Still my conclusion is to write everything from scratch and slowly but surely build something good.
You need to own your future, that requires responsibility and respect, without that your life is just slavery.
The id's are secure random longs, so collisions are rare.
You can see the code in Root.send(...) or see the live trace by going here and pressing the Make button: http://root.rupy.se/node?make&info
It's a tradeoff that is well worth the simplicity.
To have fault tolerance for writes never really works and it's very wasteful. Specially when the nodes can be very reliable and report downtime for you to fix the issue manually if a node goes down.
In 5 years of operation my home hosted cluster has better uptime than all cloud providers: AWS, GCP etc. for writes and 100% uptime for reads.
I have blogged about how to make a 100% write uptime database here: http://talk.binarytask.com/task?id=4662372011677848884
But my conclusion is that it's a waste of time.
I'd advise you to not be too bullish on the universality of this principle of yours. Unfortunately real life is often more complicated than the scenario you describe and I wouldn't describe the solutions smart people came up with (various consensus algorithms or convergent replicated data types) as a waste of time.