Relational database technology has been around for a few decades now.
In the last several years we have seen a resurgence of innovation
around data storage and data processing. This has pushed us into the
realm of thinking outside of traditional SQL and big iron monolithic
computing.
NoSQL, NewSQL and distributed
commodity/cloud storage is changing how we build persistence into our
applications. However the fundamentals of databases have not changed
much. Lower cost memory and the availability of cheaper cloud computing
has created a lot of innovation, but how databases function under the
hood has not changed very much.
The fundamentals of how
transaction atomicity, replication and considerations such as CAP
theorem are still tackled in much the same way as they were with the
earlier database engines. But is there a different way to look at how
applications manage persistence for OLTP type of transactions? Well, Apache Samza
presents an interesting approach to how data is managed. While it takes
things from a streaming centric approach, this could present a new way
for how applications can manage general data storage in the future.
Here is an interesting blog
that presents a breakdown how the Apache Samza architecture and how
this can facilitate more general purpose application data management by
using an "unbundled" architecture in the heart of the database engine.
Is this just another specialized data storage engine geared toward
steaming data and analytics, or a whole new way to think about database
architecture?