“In short: MySQL Repeatable Read transactions cannot safely read a value and then write it.”
Repeatable Read is MySQL’s default isolation level, and one list-append test hit 214 dependency cycles in 40 seconds on a single healthy node. Martin Kleppmann reported the lost updates in 2014. They still happen. The standard ORM pattern of load, modify, save and commit can silently throw away committed changes. AWS RDS ships replica_preserve_commit_order off by default, so its “Serializable” isn’t serializable either.