El dinero no se duplica · Episodio 6 de 7

Dos saldos para la misma cuenta

Laura deja una fianza de 200 € al entrar en un hotel. Su saldo disponible baja 200 €; su extracto no dice nada. El hotel no cobrará nunca la fianza, y el banco no lo sabrá hasta que pasen siete días. Durante días, la cuenta de Laura tiene dos saldos que no coinciden, y es a propósito.

Concepto: consistencia eventual; modelos de consistencia~10 min

El punto de partida

Los dos episodios anteriores fueron una pelea por que todos vieran el mismo dato al mismo tiempo: aislamiento, bloqueos, reintentos. Hay un sitio del banco donde esa pelea se perdió hace décadas, y nadie la echa de menos: las tarjetas.

Cuando Laura paga con tarjeta, la red de tarjetas pide autorización y el banco crea una retención: baja el saldo disponible, no el contable. Uno o dos días después, llega la liquidación y la retención se convierte en un movimiento. Entre una y otra, el banco no está de acuerdo consigo mismo: Tarjetas sabe algo que el extracto todavía no.

¿Cuánto tiempo?

La consistencia eventual promete que, si no llegan más cambios, todo acaba coincidiendo. No dice cuándo. Y algunas retenciones no liquidan nunca: la fianza de un hotel, un pedido cancelado. Por eso el dominio tiene una regla: si la liquidación no ha llegado a los 7 días, la retención se libera.

¿Por qué siete? Pruébalo. La simulación es la semana de Laura: la fianza del hotel, la compra del súper, un pedido en una tienda online que tarda cuatro días en liquidar, una cena, un billete de tren de 300 € el día 6 y el recibo de la luz el día 9. Elige a los cuántos días se liberan las retenciones y pasa los días.

Qué ha pasado

La duración del desacuerdo no es un detalle técnico. Es una decisión de negocio que reparte un riesgo entre el banco (liberar pronto) y el cliente (liberar tarde). La consistencia eventual no se tolera: se diseña, con un plazo y con alguien que sepa qué pasa cuando se cumple.

No todos necesitan lo mismo

El saldo de Laura lo leen muchos, y no todos necesitan la misma garantía. Hay un espectro de promesas sobre lo que ve quien lee un dato que otros están cambiando: desde que todos vean siempre lo último (fuerte) hasta que acaben viéndolo cuando dejen de llegar cambios (eventual). En medio hay una muy útil: que cada uno vea al menos lo que ha hecho él.

Elige qué garantía necesita cada lector del saldo y comprueba qué pasa.

Lo máximo para todos sale caro

La tentación es pedir la garantía más fuerte para todos, «por si acaso». Pero la fuerte obliga a que quien escribe espere a que todas las copias se enteren, y a que quien lee pregunte a quien tiene la última. Pedirla para un informe mensual es acoplar todo el banco a algo que se hace una vez al mes.

Y pedir la más débil para Laura es enseñarle un saldo en el que no se puede fiar: paga, vuelve a la pantalla, el saldo no ha bajado y lo repite. El dinero no se habría duplicado por un fallo técnico, sino porque Laura no vio lo que había hecho. Cada lector tiene su garantía, y elegirla es parte del diseño.

Cómo se construyen esas lecturas (copias del saldo, vistas separadas para leer) es otra serie: lecturas frente a escrituras.

Para llevarse

Todo esto suponía que las partes del banco se pueden hablar, aunque sea con retraso. ¿Y si se corta la red entre ellas?