Relational Databases are Things of the Past and are Best Avoided


I had a lunch with a friend on Friday. He's a senior engineer at a vendor of software for financial institutions so our discussion mostly revolved around his problems at introducing agile and modern engineering practices to his team. One thing that he wanted to know in particular is how to handle relational databases in an agile way. My answer to him was that you couldn't and that relational databases are best avoided if you want to do things iteratively and without too much forethought. We've built one of our recent products almost exclusively around Apache Cassandra with only a minor part requiring MySQL. While Cassandra has her fair share of problems, they are still much less severe than problems that MySQL has with schema changes, back-up, or data eradication. I'm becoming increasingly convinced that relational databases are things of the past and should be avoided altogether. For rapid prototyping MongoDB is much more suitable, for handling large amounts of data Cassandra and Hadoop are the right answer, and for analytical purposes solutions such as Splunk seem to be the way forward.

Agile is all about embracing change. The relational databases, on the other hand, are all about persistence.

Enhanced by Zemanta