Building Financial Systems on Eventually Consistent DBs by Rahul Pilani
Quick overview of the Netflix billing team’s migration from MySQL to Cassandra.
The biggest issue with MySQL was its single-master nature; they wanted to be able to evacuate a region more quickly than this architecture allowed.
Doesn’t go into too much detail about why Cassandra was chosen, but a lot of engineering was required to essentially jury-rig it into a relational database.
Cassandra feels like the wrong choice here (over something like Aurora, Spanner [writes need a synchronous quorum across regions, which is possibly too slow], or even Postgres+BDR).
Uses LOCAL_QUORUM (which is a Cassandra setting that persists writes after obtaining quorum within the region) because obtaining a full quorum was too slow.
All Netflix’s internal writes are guaranteed to happen in the same region a user is in to avoid consistency issues (Cassandra uses LWW).