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)

SW Architect/programmer- in various languages and technologies from 2001 to now. https://www.linkedin.com/in/alexpunnen/

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store