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+
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).
- Is this simply a best-effort guarantee?
- Optimistic/pessimistic locking