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).
    • Is this simply a best-effort guarantee?

Look Up

  • Optimistic/pessimistic locking