resilience

4 posts

Tu bucle de reintentos asume que la primera petición falló. Probablemente no lo hizo.

Un timeout o un crash no significan que tu petición a la API se haya perdido. Aquí te explicamos cómo las idempotency keys hacen seguros los reintentos, y el patrón de almacenamiento que realmente previene duplicados.

Tu servicio se cae a mitad de una petición . El cliente ve un timeout y reintenta. Ahora tienes dos cargos. El cliente está enfadado. La base de datos es…

Un circuit breaker sin goroutines, sin timers y sin overhead en segundo plano

La mayoría de las bibliotecas de circuit breaker lanzan hilos en segundo plano para sondear la recuperación. No los necesitas. Aquí tienes un diseño dirigido por requests que elimina todo el overhead en segundo plano sin sacrificar la corrección.

Cada circuit breaker de producción que he revisado eventualmente lanza un hilo en segundo plano. Puede ser una goroutine de Go, un de Java, o una tarea tokio…

Tu Servicio Web Tiene una Ruta de Graceful Shutdown. Ese es el Bug.

El software crash-only trata cada fallo como un crash y cada inicio como una recuperación. Para los servicios web, esto significa eliminar tu lógica de shutdown y diseñar un estado que sobreviva a un kill -9.

Tu servicio web tiene un shutdown handler. Hace flush de los buffers, cierra conexiones, escribe checkpoints. Lo probaste una vez, tal vez. En producción,…