Andrew Oakley's Blog - Just Released – Data Access for Highly Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence
All applications use data, and most applications also need to store this data somewhere. In the world of business solutions, this often meant creating a relational database. However, relational technology is not always the best solution to meet the increasingly complex data-processing requirements of modern business systems, especially when this processing involves storing and retrieving massive amounts of data.
The advent of NoSQL databases has changed the way in which organizations have started to think about the way in which they structure their data. There is no standard definition of what a NoSQL database is other than they are all non-relational. They are less generalized than relational databases, but the driving force behind most NoSQL databases is focused efficiency and high scalability.
The downside of NoSQL is that no single database is likely to be able to support the complete range of business requirements mandated by your applications. How do you select the most appropriate database to use, or should you remain with the relational model? A modern business application is not restricted to using a single data store, and an increasing number of solutions are now based on a polyglot persistent architecture. The key to designing a successful application is to understand which databases best meet the needs of the various parts of the system, and how to combine these databases into a single, seamless solution.
This guide helps you understand these challenges and enables you to apply the principles of NoSQL databases and polyglot persistent solutions in your own environment.
To help illustrate how to build a polyglot persistent solution, this guide presents a case study of a fictitious company faced with building a highly scalable web application capable of supporting many thousands of concurrent users.
How to get it?
The source code for the associated reference implementation can be found on the Microsoft Download Center.
You can view the documentation on MSDN or you can download a PDF from the Microsoft Download Center. The written guidance is also available for purchase on Amazon as a printed book or a Kindle download.
Book Download: Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence
This guide describes how to design and build applications and services that can take best advantage of SQL and NoSQL databases by combining them into a polyglot solution. It provides an end to end walkthrough of a business application that uses SQL Server in conjunction with a variety of NoSQL databases, showing how the designers selected the databases to closely match the business requirements.
Date Published: 9/27/2013
DataAccessForHighlyScalableSolutions.epub, 3.9 MB
DataAccessForHighlyScalableSolutions.pdf, 8.7 MB
This is a PDF version of the on-line guidance available on MSDN Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence
This guide describes how to design and build applications and services that can take best advantage of SQL and NoSQL databases by combining them into a polyglot solution. It provides an end to end walkthrough of a business application that uses SQL Server in conjunction with a variety of NoSQL databases, showing how the designers selected the databases to closely match the various business requirements. This guide has an accompanying reference implementation of an online ordering system. The sample code illustrates how to implement a polyglot solution that stores data in a variety of SQL and NoSQL databases, and how to decouple the data access logic from the business logic of the application.
I like the idea of using the right tool for the right problem. I think this kind of model is one that we'll see much more of... (So I better start wrapping my head around it now... ;)