About two years ago I gave a few presentations about how relational databases are facing more and more competition and that several factors indicate that we will be choosing other ways of storing data in the not too distant future.
The term NoSQL was created last year and has morphed into NOSQL lately (Not Only SQL). This trend is rapidly gaining strength. Below I have written down some of the drivers behind the NOSQL movement. Which ones are missing?
- TDD and DDD
For many, this changes the picture completely. The focus moves away from the storage technology. - Application databases instead of integration database
Then the storage technology that is used is a private concern of the service/application itself and the decision becomes less dramatic. - Internet scale
The need for scaling out is changing the scene for certain scenarios and eventual consistency is most often good enough. - We don't need many of the common capabilities for certain applications/services
And we just don't want to pay a high cost for impedance mismatch if we don't get other large benefits. - Querying and analysis finally moves away from the production databases
Just an example of one reason why we have less of a need for functionality in specific situations. - Certain types of applications don't fit the relational model very well
A classic example is "bill of materials". Nowadays social networks is an often mentioned example. - Event sourcing is growing in popularity
This might mean that you only need a persistent log file for that part, a pretty basic need. - Need for rapid schema evolution
Or very many schemas, or no schemas.