Thanks for the article; It was a nice read; however when we start out with implementing HA or Scale-ability with SQL DB, I have seen the inherent design creating problems; Here is a problem we faced in Postgres HA, and I guess this is common for most master -slave DB architectures; The Split brain syndrome — if there is a network partition then which of the two nodes is the master, which is the slave ? We were using pgpool-2 ; The bug is something like this http://www.pgpool.net/mantisbt/view.php?id=227 and I see work even now active on it http://www.pgpool.net/pipermail/pgpool-committers/2017-April/003945.html; Basically, it is a hard problem and I guess the only way to solve it is by designing your DB with it in mind— eventual consistency? — https://www.quora.com/How-does-distributed-data-base-like-Cassandra-and-Hbase-can-guarantee-consistency-even-the-underlying-network-is-partitioned
So I guess there is no silver bullet here; SQL is a great abstraction, but like all abstractions, it gets leaky in certain scenarios and you won't know it is leaking — split-brain syndrome, load balanced read using asynchronous WAL streaming between master and slaves etc, leading to hard to debug application errors.
Cassandra has a similar abstraction like SQL called CQL, and like all abstractions you can do silly things with it; read and think read will give you what is written, write and think it is written in all nodes, use ALLOW FILTERING at the first chance etc; I have used the earlier Hector APIs before CQL and at that time it was very hard to write a query with some complexity — Query Slices and the horrors; I would not touch it if it were not for something simple like CQL;
So what is the difference then- If you have some understanding of the DB technology, with an interface like CQL you can model your query and table for elegant and easy scaleability and high availability; The master-slave approach to HA or the application level horizontal sharding employed by many SQL DB bites us when we start walking deeper into the implementation jungle… (note I am not an expert in DB technologies, just a user with some experience)