CIRCUIT BREAKER IN SYSTEMS BASED ON MICROSERVICES ARCHITECTURE
Main Article Content
Abstract
The subject of the article is a review of Circuit Breaker pattern in systems based on microservices architecture. The purpose of the article is to analyze the advantages and disadvantages of Circuit Breaker for microservices. Results. The precise way that the circuit opening and closing occurs is as follows: assuming the volume across a circuit meets a certain threshold; and if the error percentage exceeds the threshold error percentage; then the circuit-breaker transitions from closed to open; while it is open, it short-circuits all requests made against that circuit-breaker. After some amount of time, the next single request is let through (this is the half-open state). If the request fails, the circuit-breaker returns to the open state for the duration of the sleep window. If the request succeeds, the circuit-breaker transitions to closed and the logic in 1 takes over again. Conclusions. Circuit Breaker has been reviewed and explained. This pattern is emerging as essential for the reliability, ease of access, and flexibility of MSAs. Since microservices is in its early development, we can expect more patterns like this to appear in the future. It is interesting that it is structural, in the sense that they do not change the operations that services offer. Being of this nature, their implementations benefit from parametricity to achieve reusability. However, their adoption also makes MSAs more complicated, and they influence the communication structures that will be enacted in a system. This suggests that methods for the programming and verification of communications among services should keep patterns such as these into account.
Article Details
References
Lightbend. Akka's Circuit Breaker Pattern (2018), vailable at: http://doc.akka.io/docs (last accessed August 20, 2018).
Netflix Hystrix (2018), available at: https://github.com/Netflix/Hystrix/wiki/How-it-Works (last accessed August 21, 2018).
Martin Fowler. Circuit Breaker (2018), available at: https://martinfowler.com/bliki/CircuitBreaker.html
(last accessed August 21, 2018).
Michael T. Nygard (2007), Release It! , 326 p., ISBN: 978-0-9787-3921-8.
Cloud design patterns by Microsoft (2018), available at: https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker (last accessed August 30, 2018).
Sam, Newman (2015), Building Microservices, O'Reilly Media, Inc., 282 p.
Matthias, K. and Kane, S.P. (2015), Docker: Up & Running, O'Reilly Media, Inc., 230 p.
Nicola, Dragoni, Saverio, Giallorenzo, Alberto, Lluch-Lafuente, Manuel, Mazzara, Fabrizio, Montesi, Ruslan, Mustafin and Larisa, Safina (2016), Microservices: yesterday, today, and tomorrow. CoRR, abs/1606.04036, 322 p..
Fowler, M. and Lewis J. (2014), Microservices, ThoughtWorks, 185 p.
Little M. SOA versus microservices? (2018), available at:
http://www.infoq.com/news/2015/02/special-microservices-mark-litle (last accessed at August 21, 2018).
Hystrix and resilience (2018), available at: http://callistaenterprise.se/blogg/teknik/2017/09/11/go-blog-series-part11/ (last accessed August 21, 2018).
Gentle introduction to Hystrix (2018), available at: https://dzone.com/articles/gentle-introduction-to-hystrix-hello-world
(last accessed August 21, 2018).
Structural design patterns (2018), available at: https://sourcemaking.com/design_patterns/structural_patterns
(last accessed August 21, 2018).