PolyGlot Persistence for Microservices-Based Applications

PolyGlot Persistence for Microservices-Based Applications

Harshul Singhal, Arpit Saxena, Nitesh Mittal, Chetna Dabas, Parmeet Kaur
DOI: 10.4018/IJITSA.2021010102
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Traditionally, applications have used a single database to fulfill their storage requirements. However, limiting storage to a specific type of database system may result in a compromise in some functionalities of the application due to database features. This paper proposes an architectural framework for an application to exploit heterogeneous databases with a polyglot approach. A working application to demonstrate the use of different databases for various modules of an application is presented. Two instances of MongoDB and a single instance of MySQL have been used in the proposed application. Container technology is used to deploy the application's services like databases and web server. The use of microservices has resulted in a completely flexible and scalable application that utilizes the desired features of heterogeneous databases for its constituent modules. The proposed architecture is validated and compared with existing models. The performance comparison results are tabulated for six crucial parameters listed in the ISO/IEC 25010 standard.
Article Preview
Top

1. Introduction

According to Gartner hype cycle1, micro services are capturing huge attention across the world in recent times. Specifically they are quickly moving towards the peak if technological expectations are investigated in the Gartner hype cycle. The micro service oriented architecture plays a significant role in the context of the design, development and deployment of complex service applications. There are numerous advantages of using micro service architectures for any given problem since it deals with complexity of the application, provides independent deployment, and independent scaling of an application.

The present day web and mobile applications are inherently complex and therefore, the complexity of an application is an important issue which needs to be addressed. Microservice patterns offer a viable solution to this problem (Richardson & Smith, 2016). Here, a huge monolithic application is decomposed into a number of small manageable pieces called services. Each of these small services bears a clear cut boundary. This boundary is in the form of either a message driven application programming interface (API) or remote procedure calls (RPC). In comparison, it is difficult to attain this kind of modularity in a monolithic code driven based application as is supported in the micro-service driven architecture.

Another benefit of micro service architecture is that it allows flexibility in application deployment. Normally, for the changes which are local to a specific service, the developers are required to track the incorporation of changes in the deployment. However, for the micro service oriented architecture based applications, there is no need for the developers to track those changes once they have been tested. Most importantly, for each service, there can be a number of instances which can be deployed pertaining to the specific constraints and capacity of that particular service. This provides the advantage of independent service scaling to an application (Núñez, 2017 & Daya et al, 2016).

At the backend, in the light of heterogeneous databases used in complex applications presently, the different characteristics for data storage, integration, maintenance and deployment come with their own complexities and issues to be handled. The existing traditional relational databases have the limitation that they cannot handle large volumes of data. Therefore, the NoSQL family of databases comes up as a better option for this problem Sadalage & Fowler, 2013 and González-Aparicio et al 2018). But, each NoSQL database is appropriate for a specific problem and has limitations for others. Further, the NoSQL databases follow the famous CAP theorem (Brewer, 2000), i.e., a NoSQL database can provide any two features out of consistency, availability and network partitioning. If an application requires all three features, it results in a need to use multiple database systems for the application. For instance, if an e-commerce application needs Document type NoSQL database for storing product related data, it can use MongoDB for the same. If this application also requires storing recommendations of products, it can use the NoSQL graph database system, Neo4j (Han, 2007). Consequently, applications are shifting to the concept of polyglot persistence (Kaur & Rani, 2015 and Srivastava & Shekokar, 2016) wherever any application requires using multiple data storage technologies for multiple types of data. The term polyglot persistence implies use of multiple data stores to store varied types of data being generated or used by a single application (Sadalage & Fowler 2013).

Though polyglot persistence is impressively effective for complex applications utilizing data from various sources, it is also applicable for simple applications involving multiple kinds of data (structured, unstructured or semi-structured). This drift towards polyglot persistence positively complements the micro services based architecture for application development. Each service boundary acts as a wrapper around a specific database technology selected for data storage and manipulation by the service. Therefore, it is beneficial to use micro-service in complex problem- oriented applications which employ polyglot persistence (Schaarschmidt et al., 2015).

This paper proposes an architectural framework for development of micro services based applications employing polyglot persistence. This framework will allow scalability, maintainability and independent deployment of applications which have microservice based architecture. This paper also evaluates a polyglot persistent application based on the proposed framework using parameters listed in the ISO/IEC 25010 standard.

The contributions of the paper can be summarized as:

Complete Article List

Search this Journal:
Reset
Volume 17: 1 Issue (2024)
Volume 16: 3 Issues (2023)
Volume 15: 3 Issues (2022)
Volume 14: 2 Issues (2021)
Volume 13: 2 Issues (2020)
Volume 12: 2 Issues (2019)
Volume 11: 2 Issues (2018)
Volume 10: 2 Issues (2017)
Volume 9: 2 Issues (2016)
Volume 8: 2 Issues (2015)
Volume 7: 2 Issues (2014)
Volume 6: 2 Issues (2013)
Volume 5: 2 Issues (2012)
Volume 4: 2 Issues (2011)
Volume 3: 2 Issues (2010)
Volume 2: 2 Issues (2009)
Volume 1: 2 Issues (2008)
View Complete Journal Contents Listing