40 Patrones / 8 Categorías








Patrones Cloud
- Disponiblidad
- Administración de datos
- Diseño e implementación
- Mensajería
- Administración y supervisión
- Rendimiento y escalabilidad
- Resistencia
- Seguridad
- Disponibilidad
Obviamente importante por que debemos ofrecer que si un usuario ingresa la aplicación debe estar accesible, prácticamente si la aplicación no esta disponible ningún otro atributo se usaría.
Retry Pattern
Patron de estabilidad y tal y como indica su nombre, consiste en reintentar una operación que ha fallado.
Problema:
Usuarios usan aplicación 1 y está necesita comunicarse con la aplicación x.
Caso: Un usuario usa la aplicación 1 y está al consumir la aplicación x. Falla (time out, sobrecargado, conectividad,etc)
Que sucederia? La aplicación 1, fallaría y el usuario no sabe que está fallando la aplicación x,
Solución
Usuarios usan aplicación 1 y está necesita comunicarse con la aplicación x.
Caso: Un usuario usa la aplicación 1 y está al consumir la aplicación x. Falla por problema de red.
Qué hacemos? Re-intentamos
Vuelve a fallar
Qué hacemos? Re-intentamos
Y finalmente, dejar de fallar, y retornamos el resultado al usuario
El usuario recibe su respuesta, considerando que el tiempo de tardo no fue muy agradable. Pero finalmente la experiencia del usuario es positiva, "tardo en responder, pero fue exitosa"
Consideraciones
- Reintentos en errores transitorios: debemos entender que errores se pueden generar momentáneamente, no se debe realizar un try sobre cualquier error. de lo contrario arrojar una excepción en otro tipo. (Ej: Disco Lleno)
- Diseño de reintentos acordes a la app: Debemos conocer nuestra aplicación y la aplicación que vamos a consumir. No es lo mismo esperar 10 min en una aplicacion Batch a esa espera en una aplicación web.
- Conocer donde hacer el retry: No hacer retry a aplicaciones que también hacen retry.
- Cancelar: Si el error indica que no nos encontramos ante un fallo temporal la operación debería ser cancelada y el error reportado o gestionado de manera adecuada.
- Conocemos la api sobre la que vamos a hacer retry
- Es posible el éxito luego de n intentos
- Siempre que la aplicación lo permita.
Librerias: Polly .NET microservices

Comentarios
Publicar un comentario