Comparison of Event Choreography and Orchestration Techniques in Microservice Architecture

Microservice Architecture (MSA) is an architectural design pattern which was introduced to solve the challenges involved in achieving the horizontal scalability, high availability, modularity and infrastructure agility for the traditional monolithic applications. Though MSA comes with a large set of benefits, it is challenging to design isolated services using independent Database per Service pattern. We observed that with each micro service having its own database, when transactions span across multiple services, it becomes challenging to ensure data consistency across databases, particularly in case of roll backs. In case of monolithic applications using RDBMS databases, these distributed transactions and roll backs can be handled efficiently using 2 phase commit techniques. These techniques cannot be applied for isolated No-SQL databases in micro services. This research paper aims to address three things: 1) elucidate the challenges with distributed transactions and rollbacks in isolated No-SQL databases with dependent collections in MSA, 2) examine the application of event choreography and orchestration techniques for the Saga pattern implementation, and 3) present the fact-based recommendations on the saga pattern implementations for the use cases.

[1]  Peter Bak,et al.  Location and Context-Based Microservices for Mobile and Internet of Things Workloads , 2015, 2015 IEEE International Conference on Mobile Services.

[2]  Yousof Al-Hammadi,et al.  The evolution of distributed systems towards microservices architecture , 2016, 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST).

[3]  Weimin Du,et al.  A paradigm for concurrency control in heterogeneous distributed database systems , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[4]  J. Tang Using dummy reads to maintain consistency in heterogeneous database systems , 1992, Proceedings of the Third Workshop on Future Trends of Distributed Computing Systems.

[5]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[6]  Paolo Di Francesco Architecting Microservices , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[7]  Marek Rusinkiewicz,et al.  A decentralized deadlock-free concurrency control method for multidatabase transactions , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[8]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[9]  Joseph P. Macker,et al.  Orchestration and analysis of decentralized workflows within heterogeneous networking infrastructures , 2017, Future Gener. Comput. Syst..

[10]  Michael Le,et al.  Container and Microservice Driven Design for Cloud Infrastructure DevOps , 2016, 2016 IEEE International Conference on Cloud Engineering (IC2E).

[11]  Riccardo Rizzo,et al.  The Database-is-the-Service Pattern for Microservice Architectures , 2016, ITBAM.