Resiliencia no significa reintentar todo
Los fallos forman parte de cualquier automatización que dependa de APIs, modelos o servicios externos. La diferencia entre un flujo frágil y uno resiliente está en cómo responde cuando algo deja de funcionar.
Un reintento puede ser adecuado ante un error temporal, pero no ante datos inválidos o una operación cuyo resultado quedó incierto. En esos casos, repetir a ciegas puede aumentar costos, saturar el servicio o producir duplicados.
También existen otras respuestas: utilizar un fallback seguro, degradar temporalmente una función o detener el proceso y solicitar revisión. La decisión debe proteger primero la consistencia del negocio.
Un punto especialmente delicado ocurre cuando un sistema externo pudo completar una escritura antes de devolver un timeout. La recuperación requiere idempotencia, verificación o reconciliación antes de ejecutar nuevamente.
La resiliencia no consiste en insistir hasta que algo funcione. Consiste en diseñar respuestas controladas para cada tipo de fallo.
Comentarios
Publicar un comentario