What started me thinking NoSQL will be where all the application action goes was finding NoSQL databases is unexpected places. Meaning not the usual ‘Big Data” but something like embedded systems for example.
Why would an embedded systems developer choose NoSQL over SQL for a small embedded database? On the surface you have to wonder but the answer is likely the programming model. It is a lot easier for a Java developer to work with Java objects and JSON documents than to map those objects to SQL. Most of them don’t understand SQL very well and they make a mess of it, so just pick something they understand better.
I was shocked to find an RDM system that runs on MongoDB. Surely RDM is one place that would need the robustness of a relational database but no it doesn’t. Look a bit deeper and you see why. It is a closed system, nobody will be doing adhoc queries and updates to an RDM, it is closed to just the app. While the database doesn’t provide much in the way of data consistency, the app has control and can do it. At the same time, it has to be able to deal with data is all sort of formats and variations, the schema-less database makes this easier.
I expect we’ll see more and more of this. The transaction control and object integrity moves out of the datastore and into the app framework. It is easier or faster to program there. Time to market is everything today and if NoSQL is good enough and faster to market, it will win most of the time.