• Corpus ID: 2246394

Circuit Breakers, Discovery, and API Gateways in Microservices

  title={Circuit Breakers, Discovery, and API Gateways in Microservices},
  author={Fabrizio Montesi and Janine Weber},
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… 

Figures and Tables from this paper

Method overloading the circuit

This paper systematically examines the state of the art in industrial circuit breakers designs, and proposes two new circuit breaker designs and provides guidance on how to properly structure microservice applications for the best circuit breaker use.

Security strategies for microservices-based application systems

The purpose of this document is to analyze the multiple implementation options available for each individual core feature and configuration options in architectural frameworks, develop security strategies that counter threats specific to microservices, and enhance the overall security profile of the microservices-based application.

Circuit Breaker in Microservices: State of the Art and Future Prospects

An overview of recent research in circuit breaker is provided, the opportunity in enhancing the use of circuit breaker in microservices architecture is proposed, by explore the potential implementation of proxy circuit breaker.

A framework for microservices synchronization

A new framework, Synchronizer, able to support synchronization among microservices by exploiting distributed registries for collecting health/state information about deployed containers and hosted microservices is proposed.

Architecture-Based Automated Updates of Distributed Microservices

An architecture-based approach is leveraged to provide an easy and safe way to update microservices to protect SLA properties when updating microservices.

MicroBuilder: A Model-Driven Tool for the Specification of REST Microservice Architectures

The MicroDSL meta-model, specified in Ecore, is presented, the concrete syntax of the Micro DSL and examples of its usage are presented.

Efficient Communication With Microservices

In this report we present a study of communication between a client application and microservices and also a review of how the performance and scalability of microservices are affected by different

Transition from monolithic to microservice-based applications. Challenges from the developer perspective

The objective is to place the concept of microservices in the most up-to-date context and shed some light in the challenges that puzzle the developers the most while they attempt to make use of this development and design style.

Evaluating the Operational, Performance, and Extensibility Characteristics of SOA, ESB, and Microservices Architectures

This annotated bibliography examines the operational characteristics of each of these approaches regarding extensibility, performance, scalability, maintainability, and flexibility as well as the costs of each.

Optimizing Inter-Service Communication Between Microservices

Issues of REST are discussed and discusses them in context of microservices through a literature review and some of the discussed issues relates to how concepts under REST should be approached where much discussion relates to the linking between representations.



Self-Reconfiguring Microservices

JRO Jolie Redeployment Optimiser is proposed, a tool for the automatic and optimised deployment of microservices written in the Jolie language.

Microservices: Yesterday, Today, and Tomorrow

This chapter reviews the history of software architecture, the reasons that led to the diffusion of objects and services first, and microservices later, and presents the current state-of-the-art in the field.

Service-Oriented Programming with Jolie

This chapter presents Jolie, a fully-fledged service-oriented programming language that combines computation and composition primitives in an intuitive and concise syntax and addresses the aforementioned heterogeneity in two ways.

A Type System for Components

A type system is introduced that extends the ABS type system with the notion of ports and a precise analysis that statically enforces that no object will attempt illegal rebinding.

Dynamic Error Handling in Service Oriented Applications

This work proposes as a solution an orchestration programming style in which handlers are dynamically installed and formalizes the approach as an extension of the process calculus SOCK and proves that it satisfies some expected high-level properties.

A Model of Evolvable Components

A model of components following the process calculus approach, with particular emphasis to common evolvability patterns for components, is presented and a number of examples of use of the calculus are shown.

Interface-Based Service Composition with Aggregation

This paper formally defines the semantics of aggregation in terms of a process calculus and provides a reference implementation for this primitive by extending the Jolie language, thus allowing for the experimentation with real SOA scenarios.

Session-based Choreography with Exceptions

  • Marco Carbone
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2009

Deadlock-freedom-by-design: multiparty asynchronous global programming

This work proposes a purely-global programming model that defines a new class of deadlock-free concurrent systems, provides type inference, and supports session mobility, and develops a typing discipline that verifies choreographies against protocol specifications, based on multiparty sessions.

Release It!: Design and Deploy Production-Ready Software

This book shows you how to design and architect your application for the harsh realities it will face and will help you manage the pitfalls that cost companies huge amounts of time and money each year.