ElasticSearch, MongoDB and Neo4j walk into a bar: a tale of different databases
Frank Lyaruu is CTO at Dexels, Senior Architect at Sendrato, and still likes to get his hands dirty. Non-blocking & No-SQL guy. He designs interesting architectures, sweats & bleeds until they work, and then travels the world to speak at conferences.
Which database should I use? A classic relational database? A document database? Graph? Column? Key-value? Real time? A common question, but the answer often depends more on the perspective than on the actual data, and that perspective is not the same in all parts of the application. The same data can be a graph in one context, but a document in another. Can’t we just plug in the database we want and keep it up-to-date with our application data? With Kafka, Kafka Streams and Redhat’s Debezium we can create an Event Driven Microservice architecture that can do just that, and the best part is that you can do this with existing legacy applications without too much trouble.
We know that different databases excel in different situations, but in reality we tend to stick with one database and try to do everything with it. I’ll show there is a world of opportunity when we replicate data across different databases using streaming technology like Kafka Streams.