Whenever I’m about to start a new project, I dress up all nice-like (silver blazer and all) and hit that upscale lounge where all the NoSQL databases congregate to see if someone new catches my eye.
See, I’m currently dating Cassandra, a nice NoSQL DB by all means. I love how beautifully well she scales and the fact that she was the first-ever NoSQL DB to ever let me use SQL style (i.e. CQL) on her. It’s just that lately I’ve been feeling a bit dissatisfied…
It’s not her. It’s me.
Despite her unique benefits, I found myself craving some of that fun relational stuff I used to enjoy back in the day when dating those high-maintenance RDBMs. Being able to link to independent data within my data (commonly known as “joins”) without Cassandra always staring at me with her judgemental eyes. Almost like she’s saying “you’re doing it wrong!”. And hey, look, I know it's irresponsible...but being able to do a little ACID every now and then like the old days to smooth out life's edges shouldn't be such a bad thing! Whatever...
Deep down, past the CQL and materialized View benefits, Cassandra is just like any other document DB. I needed deeper relations with my data, but I also knew i had outgrown RDBMs. Cassandra tried it’s best, but she could not fully become what I needed her to be without resorting to wearing make-up and body mods everyday such as Spark and/or Titan. To make matters worse, the fashion company in charge of making that Titan bodyshaper just killed that line!
These things were not her. They were add-ons. It became clear to me that I wasn’t in-love with Cassandra. I was only in love with my social perception of her. What she looked like when wearing the latest mod. How "mature" others think I am when they see us together...But I hated seeing her naked.
We are still seeing each other, but I know this won’t be the case for long….at least for my personal projects.
As they say, no relationship is wasted. You simply get closer to knowing what you want…and I believe I’ve found exactly what I want
It all began one evening before I started building my latest project.
I was at the Google Chrome NoSQL lounge. All the usual faces were there, including MongoDB. Nothing special. (MongoDB probably hates me now because I totally snubbed her on multiple occasions but that’s a story for another day)
As I was about to call it an early night due to there being “nothing new”, I caught a glimpse of a beautiful NoSQL DB. I had never seen her before. Quick! I called up my boy Google (he hosts these parties so he knows everyone) and asked for the lowdown on that fine looking DB, and that’s exactly what he gave me. Information on the target only keeps your game tight before swooping in to say "hello...world". You need to know what she likes to drink for example...and if she gives good SQL.
Needless to say, with game tightened and swagger on flick, I approached her and we started talking. Her name is ArangoDB.
Before that night was done, I was able to determine that:
- She was a natural beauty; able to inter-connect data objects independently without wearing any make-up/add-ons.
- She’d allow me to work with a sql-like language called AQL (a WAAAAY more expressive language than Cass’s CQL)
- Highly performant just like Cass
- Scales pretty well similar to Cass
- ArangoDB Made the concept of graph DBs sexy again by merging all the neat stuff present in graph / document database. Vertexes, edges, documents-in-vertexes, documents-in-links…basically she was a bad ass.
ArangoDB is a multi-model hybrid between a “typical” NoSQL DB and the RDBMs of old…without any of the restrictive RDBM drama and with a modern dress sense. A perfect combination that worked for me.
We’ve been seeing each other ever since unknown to Cassandra…though I think Cass is beginning to suspect something. I’ll have to break the news to Cass soon as I can’t keep doing this. I suck at lying….
Hopefully I can get ArangoDB to silently take over some of the stuff Cassandra has been doing for me before I break it off with Cass. Hope she doesn’t smash my data in anger though.
I’ll be sure to tell you guys how it went down.
PS: Am I a bad person???
Update Aug 2018:
It's been several months since I met ArangoDB. Since then I fully broke things off with Cassandra.
It's safe to say ArangoDB will be my database of choice going forward for any highly connected projects I get into.
I have also made it the default datasource of JollofJS, a cool NodeJS framework you should check out!