Circuit Breakers, Discovery, and API Gateways in Microservices

We review some of the most widely used patterns for the programming of microservices: circuit breaker, service discovery, and API gateway. By systematically analysing different deployment strategies for these patterns, we reach new insight especially for the application of circuit breakers. We also evaluate the applicability of Jolie, a language for the programming of microservices, for these patterns and report on other standard frameworks offering similar solutions. Finally, considerations for future developments are presented.

[1]  Fabrizio Montesi,et al.  Deadlock-freedom-by-design: multiparty asynchronous global programming , 2013, POPL.

[2]  Gianluigi Zavattaro,et al.  Service-Oriented Programming with Jolie , 2014, Web Services Foundations.

[3]  Jan Mendling,et al.  Business Process Model and Notation , 2012, Lecture Notes in Business Information Processing.

[4]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[5]  Michael Lienhardt,et al.  A Type System for Components , 2013, SEFM.

[6]  Nicolas Tabareau,et al.  Aspectual session types , 2014, MODULARITY.

[7]  Nobuko Yoshida,et al.  Compositional Choreographies , 2013, CONCUR.

[8]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[9]  Nobuko Yoshida,et al.  The Scribble Protocol Language , 2013, TGC.

[10]  Cosimo Laneve,et al.  Foundations of Web Transactions , 2005, FoSSaCS.

[11]  Maurizio Gabbrielli,et al.  Self-Reconfiguring Microservices , 2016, Theory and Practice of Formal Methods.

[12]  Ivan Lanese,et al.  Dynamic Error Handling in Service Oriented Applications , 2009, Fundam. Informaticae.

[13]  Nobuko Yoshida,et al.  Global escape in multiparty sessions † , 2014, Mathematical Structures in Computer Science.

[14]  Michael Nygard,et al.  Release It!: Design and Deploy Production-Ready Software , 2017 .

[15]  Maurizio Gabbrielli,et al.  Interface-Based Service Composition with Aggregation , 2012, ESOCC.

[16]  Laura Bocchi,et al.  Meeting Deadlines Together , 2015, CONCUR.

[17]  Davide Sangiorgi,et al.  A Model of Evolvable Components , 2010, TGC.

[18]  Marco Carbone,et al.  Session-based Choreography with Exceptions , 2009, PLACES@DisCoTec.

[19]  Philip Wadler,et al.  Coherence Generalises Duality: A Logical Explanation of Multiparty Session Types , 2016, CONCUR.