Impact of a set of resilience patterns on the performance of a microservice architecture
Cargando...
Autores
Director
Tipo de contenido
Editor
Document language:
Inglés
Fecha
Título de la revista
ISSN de la revista
Título del volumen
Documentos PDF
Resumen
Las arquitecturas de microservicios ofrecen escalabilidad y flexibilidad, pero debido a su naturaleza distribuida están más expuestas a fallos parciales y a la indisponibilidad de servicios. Para hacer frente a estos problemas, se utilizan ampliamente patrones de resiliencia como Circuit Breaker y Retry. Sin embargo, su comportamiento depende en gran medida de la configuración de sus parámetros, y una configuración inadecuada puede generar problemas de rendimiento en lugar de mejoras. A pesar de su adopción generalizada, aún existe un número limitado de estudios experimentales que analicen cómo interactúan estos parámetros bajo escenarios de fallo controlados. Este trabajo presenta una evaluación experimental controlada de los patrones Circuit Breaker y Retry en una arquitectura basada en microservicios. Se emplea un enfoque de Ingeniería Dirigida por Modelos (Model-Driven Engineering) para definir la arquitectura y generar múltiples configuraciones de prueba de manera sistemática. Los experimentos se centran en dos escenarios de fallo: la indisponibilidad total de un servicio y el fallo parcial de una dependencia con errores intermitentes. Se comparan tres configuraciones: sin mecanismos de resiliencia, con Circuit Breaker únicamente, y con Circuit Breaker combinado con Retry. La evaluación utiliza el Response Time y el Success Rate como principales métricas de rendimiento. Los resultados muestran que el patrón Circuit Breaker reduce significativamente el Response Time cuando un servicio no está disponible, al evitar llamadas repetidas a una dependencia que está fallando, aunque no mejora de forma significativa el Success Rate. Cuando se incorpora el patrón Retry, el Success Rate aumenta únicamente en escenarios de fallos parciales, mientras que el Response Time también se incrementa debido a los reintentos. Los experimentos también evidencian que parámetros como el Failure Threshold y el Sliding Window Size tienen un impacto considerable en los resultados, y que su interacción genera un claro compromiso entre disponibilidad y latencia. En conjunto, este trabajo demuestra que los patrones de resiliencia no deben configurarse ni evaluarse de forma aislada. Sus parámetros deben coordinarse para lograr un equilibrio adecuado entre tolerancia a fallos y rendimiento. El enfoque de ingeniería dirigida por modelos utilizado en este trabajo permite realizar experimentos sistemáticos y repetibles, y proporciona aportes prácticos para arquitectos en el diseño de sistemas de microservicios resilientes. (Texto tomado de la fuente)
Abstract
Microservice architectures offer scalability and flexibility, but because they are distributed systems, they are more exposed to partial failures and service unavailability. To deal with these problems, resilience patterns such as Circuit Breaker and Retry are widely used. However, their behavior depends strongly on the configuration of their parameters, and a bad configuration can cause performance problems instead of improvements. Even though these patterns are widely adopted, there is still limited experimental work that analyzes how their parameters interact under controlled failure scenarios.
This work presents a controlled experimental evaluation of Circuit Breaker and Retry patterns in a microservice architecture. A Model-Driven Engineering approach is used to define the architecture and to generate multiple test configurations in a systematic way. The experiments focus on two failure scenarios: complete service unavailability and partial dependency failure with intermittent errors. Three configurations are compared: without resilience mechanisms, with Circuit Breaker only, and with Circuit Breaker combined with Retry. The evaluation uses response time and success rate as the main performance metrics.
The results show that the Circuit Breaker pattern greatly reduces response time when a service is unavailable by avoiding repeated calls to a failing dependency, but it does not improve the success rate. When Retry is added, the success rate increases only in scenarios with partial failures, while the response time also increases due to repeated attempts. The experiments also show that parameters such as Failure Threshold and Sliding Window Size have a strong impact on the results, and their interaction creates a clear trade-off between availability and latency.
Overall, this work shows that resilience patterns should not be configured or evaluated independently. Their parameters need to be coordinated in order to achieve a balance between fault tolerance and performance. The model-driven approach used in this work allows systematic and repeatable experiments, and provides practical insights for architects when designing resilient microservice-based systems.
Palabras clave propuestas
Arquitectura de software; Microservicios; Patrones de resiliencia; Circuit breaker; Patrón retry; Ingeniería dirigida por modelos; Evaluación de rendimiento; Tolerancia a fallos; Software architecture; Microservices; Resilience patterns; Retry pattern; Model driven engineering; MDE; Fault tolerance; Performance evaluation
Descripción
ilustraciones, diagramas, tablas

