Lo que no controlamos · Episodio 4 de 6

Dejar de llamar a quien no responde

La conexión con Bizum lleva dos minutos caída. Operaciones sigue llamando: cada llamada espera un segundo para fallar, Laura espera ese segundo y, cuando Bizum se recupere, recibirá toda la cola de golpe. Hay un momento en que hay que dejar de llamar.

Concepto: circuit breaker~10 min

El punto de partida

Reintentar con espera y jitter ayuda con los fallos breves. Pero cuando un sistema lleva minutos caído, cada reintento es una llamada perdida: ocupa una plaza, hace esperar a un cliente y, si el sistema se está levantando, le suma carga. Lo sensato es dejar de llamar durante un rato y comprobar de vez en cuando si ha vuelto.

Es lo que hace el cortacircuitos de una casa: cuando algo falla, salta y corta la corriente, y alguien lo rearma después de probar. El patrón se llama circuit breaker, y es una máquina de tres estados.

Dos minutos sin Bizum

Llegan cuatro peticiones por segundo. Marca «Bizum caído» y espera unos quince segundos. A la izquierda, Operaciones llama siempre; a la derecha, con un circuit breaker que se abre tras unos fallos seguidos. Cada diez segundos con el breaker abierto, deja pasar una llamada de prueba (semiabierto). Después recupera Bizum.

También puedes provocar un fallo suelto con Bizum funcionando, y cambiar el umbral.

Qué ha pasado

Un breaker por corresponsal

Con las transferencias internacionales, la conexión con otros bancos habla con cuatro corresponsales: Londres, Nueva York, Tokio y São Paulo. Tokio no responde. ¿Dónde se pone el breaker? Una conexión con un único breaker sería lo más simple. Lanza las veinticuatro transferencias y compara.

Por dependencia, no por servicio

Con un único breaker, los fallos de Tokio lo abren y las transferencias a Londres, Nueva York y São Paulo se rechazan sin llamar, aunque sus corresponsales funcionaban. Con un breaker por corresponsal, solo se corta Tokio. Es la misma idea del bulkhead del episodio 2: el corte se hace donde se quiere que el fallo se pare.

Para llevarse

Con el breaker abierto, el banco tiene una decisión que no es técnica: qué hacer con lo que llega mientras tanto. Si es Fraude el que no responde, ¿se aprueba, se deniega o se espera?