A lot seems to be happening on the front of persistence lately. The NoSql movement is gaining momentum as different businesses find out new ways to use schemaless databases not done in the paradigm of relational databases. Graph databases, document databases and object databases seem to be hip things currently.
And rightly so. In many cases relational database with it's rigid schemas requires way too much prediction in order not to become quickly problematic for implementing new-found needs. Another matter is the problematic clash between another prevalent paradigm, Object Orientation. OO and RDBMS simply don't match up too well. ORMs try to alleviate this problem with varying effects. Some of them do it very well, others less so. And anyhow even with the best ones the problem of two worlds colliding quite often shows up.
And into the fray enter Rich Hickey and Stuart Halloway of Clojure fame. Datomic, their take on databases is very different beast indeed. As could be expected their vision is very fresh and new. It separates several parts of the need for persistence into their own entities, solving many problems that many other contenders couldn't.
A post in Finnish language, published in the Siili blog seems to be on the cutting edge of Databases. In the post Matti P. Pulkkinen makes the notion that single very neglected part of information is the aspect of time. And many difficult needs of customers seem to have something to do with time.
Interestingly enough, one of the main ideas of Datomic is to take time as an essential aspect of a persistence layer. Instead of finding a place where memory resides and changing the memory itself, Datomic makes enters a new fact into the storage accompanied by notion of the point of time it was recorded.
If you think for example access control the idea seems extremely good. Instead of finding the place where we store whatever a person can access some resource and changing it, we can merely state that as of this moment he can access this resource. Or not access for that matter. If we ever need to see if this person has had for example "yesterday" access to some resource, we simply check it in same ways as we can check if he can do it today.
I haven't yet had time to try Datomic, but it seems very interesting indeed and certainly is on my list of things to try out.
There is one thing that people seem to forget. Persistence is just a "real world" need, not really functional one. And for some reason it seems to all too often find it's way to too much the core of things.
No comments:
Post a Comment