What’s polyglot persistence?

Polyglot Persistence is really a fancy term to imply that when storing data, it’s best to use multiple data storage technologies, selected based on the way in which information is getting used by individual applications or components of merely one application.  Different types of data would be best worked with various data stores.  In a nutshell, this means choosing the right tool for the best use situation.  It’s exactly the same idea behind Polyglot Programming, the concept that applications ought to be designed in a mixture of languages to benefit from the truth that different languages are appropriate for tackling different problems.

Searching in a Polyglot Persistence example, an e-commerce platform will cope with various kinds of data (i.e. shopping cart software, inventory, completed orders, etc).  Rather of attempting to keep all of this data in a single database, which may require lots of data conversion to help make the format from the data the same, keep data within the database ideal for your kind of data.  Therefore the e-commerce platform might seem like this:

pp

Therefore we are utilizing a combination of RDBMS solutions (i.e. SQL Server) with NoSQL solutions which you will find four types: Key-Value, Document, Graph, Column (see Kinds of NoSQL databases).  A tenet around the database type to make use of in line with the functionality from the data:

Functionality Factors Database Type
User Sessions Rapid Access for reads and writes.  You don’t need to be durable. Key-Value
Financial Data Needs transactional updates.  Tabular structure fits data. RDBMS
POS Data Based on size and rate of consume.  Plenty of writes, infrequent reads mostly for analytics. RDBMS (if modest), Key Value or Document (if consume high) or Column if analytics is essential.
Shopping Cart Software High availability across multiple locations.  Can merge sporadic writes. Document, (Key Value maybe)
Recommendations Quickly traverse links between buddies, product purchases, and ratings. Graph, (Column if simple)
Product Catalog Plenty of reads, infrequent writes.  Products make natural aggregates. Document
Reporting SQL interfaces well with reporting tools RDBMS, Column
Analytics Massive analytics on large cluster Column
User activity logs, CSR logs, Social Networking analysis High amount of writes on multiple nodes Key Value or Document

By having an application that utilizes various kinds of data, an internet service could be produced to transmit the information request towards the appropriate database:

pp2

This can come at a price in complexity, as each data storage solution means learning a brand new technology.  However the benefits is definitely worth it, as when relational databases are utilizing inappropriately, they’ll result in a significant slowdown in database integration and gratifaction.  Another advantage is many NoSQL database are made to operate over clusters and may handle bulk of information, so it offers a superior horizontal scaling (scale-out) instead of the limitation with many relational databases which use vertical scaling (scale-up).

More information:

Polyglot Persistence – Two Great Tastes That Taste Great Together

Summary of Polyglot Persistence: Using Different Data Storage Technologies for Different Data Storage Needs

Web seminar: What, Where, and just how of Polyglot Persistence

Spring Polyglot Persistent Applications Part 1

An Upswing of NoSQL and Polyglot Persistence

Polyglot Persistence: Selecting the best Azure Storage Mix

What’s better for the big data application, SQL or NoSQL?

Distinction between SQL and NoSQL : Comparision

Polyglot Persistence?

Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence

PolyglotPersistence

Resourse: http://jamesserra.com/archive/2015/07/what-is-polyglot-persistence/

Polyglot Persistence: Michael Hausenblas