Bloqueos distribuidos: coordinar el trabajo entre múltiples nodos

El escalado horizontal resuelve problemas de rendimiento, pero introduce una nueva clase de errores: dos instancias del mismo servicio haciendo el mismo trabajo al mismo tiempo. Enviar un correo duplicado, cobrar dos veces a un cliente o corromper un estado compartido — estas son condiciones de carrera a nivel de infraestructura, y una sola SELECT ... FOR UPDATE de la base de datos no te salvará cuando el proceso competidor vive en otra máquina.

Los bloqueos distribuidos son la herramienta para esto. También son una de las primitivas más mal utilizadas en la ingeniería de backend. Los modos de fallo son sutiles, la literatura está llena de polémica (véase el debate de Redlock) y la mayoría de tutoriales se detienen antes de cubrir las partes que realmente importan en producción: la expiración del bloqueo, su renovación y qué ocurre cuando el titular del bloqueo muere.