“We also have a lot of experience with eventual consistency systems at Google. In all such systems, we find developers spend a significant fraction of their time building extremely complex and error-prone mechanisms to cope with eventual consistency and handle data that may be out of date. We think this is an unacceptable burden to place on developers and that consistency problems should be solved at the database level.”[1]
[1]: https://yokota.blog/2017/02/17/dont-settle-for-eventual-cons...
"Without transactions, distributed systems cannot be made to work for typical real-life applications."
This is as true now as it was 25 years ago, for exactly the reasons cited by Google. The book is incidentally still a good read.
Automatic with CRDTs, but there is a price to pay in storage and available data-structures to play with.
Manual, like Git.
Denial, aka. Last Write Wins. With is probably good enough for a cache but has been used in other context.