by Pramod J. Sadalage and Martin Fowler
Paperback: 192 pages
Publisher: Addison-Wesley Professional; 1 edition (August 18, 2012)
We’ve spent some twenty years in the world of enterprise computing. We’ve seen many things change in languages, architectures, platforms, and processes. But through all this time one thing has stayed constant—relational databases store the data. There have been challengers, some of which have had success in some niches, but on the whole the data storage question for architects has been the question of which relational database to use.
There is a lot of value in the stability of this reign. An organization’s data lasts much longer that its programs (at least that’s what people tell us—we’ve seen plenty of very old programs out there). It’s valuable to have a stable data storage that’s well understood and accessible from many application programming platforms.
Now, however, there’s a new challenger on the block under the confrontational tag of NoSQL. It’s born out of a need to handle larger data volumes which forced a fundamental shift to building large hardware platforms through clusters of commodity servers. This need has also raised long-running concerns about the difficulties of making application code play well with the relational data model.
The term “NoSQL” is very ill-defined. It’s generally applied to a number of recent nonrelational databases such as Cassandra, Mongo, Neo4J, and Riak. They embrace schemaless data, run on clusters, and have the ability to trade off traditional consistency for other useful properties. Advocates of NoSQL databases claim that they can build systems that are more performant, scale much better, and are easier to program with.
Is this the first rattle of the death knell for relational databases, or yet another pretender to the throne? Our answer to that is “neither.” Relational databases are a powerful tool that we expect to be using for many more decades, but we do see a profound change in that relational databases won’t be the only databases in use. Our view is that we are entering a world of Polyglot Persistence where enterprises, and even individual applications, use multiple technologies for data management. As a result, architects will need to be familiar with these technologies and be able to evaluate which ones to use for differing needs. Had we not thought that, we wouldn’t have spent the time and effort writing this book.
This book seeks to give you enough information to answer the question of whether NoSQL databases are worth serious consideration for your future projects. Every project is different, and there’s no way we can write a simple decision tree to choose the right data store. Instead, what we are attempting here is to provide you with enough background on how NoSQL databases work, so that you can make those judgments yourself without having to trawl the whole web. We’ve deliberately made this a small book (just 152 pages), so you can get this overview pretty quickly. It won’t answer your questions definitively, but it should narrow down the range of options you have to consider and help you understand what questions you need to ask.
DOWNLOAD Chapter 13 Polyglot Persistence (.PDF):Chapter 13 Polyglot Persistence
Copyright © 2013 Pearson Education, Inc.
About the Author
Pramod J. Sadalage, Principal Consultant at ThoughtWorks, enjoys the rare role of bridging the divide between database professionals and application developers. He regularly consults with clients who have particularly challenging data needs requiring new technologies and techniques. He developed pioneering techniques that allowed relational databases to be designed in an evolutionary manner based on version-controlled schema migrations. With Scott Ambler, he coauthored Refactoring Databases(Addison-Wesley, 2006).
Martin Fowler, Chief Scientist at ThoughtWorks, focuses on better ways to design software systems and improve developer productivity. His books include Patterns of Enterprise Application Architecture; UML Distilled, Third Edition; Domain-Specific Languages (with Rebecca Parsons); and Refactoring: Improving the Design of Existing Code (with Kent Beck, John Brant, and William Opdyke). All are published by Addison-Wesley.