Las áreas del banco · Episodio 7 de 7

¿De quién es el límite?

Laura y Marcos ya tienen su cuenta de casa. Un Bizum desde ella, ¿cuenta para el límite de 2.000 € al día de Laura, para el de Marcos o para el de la cuenta? Antes de decidirlo hay que saber qué datos tienen que estar juntos para que la regla se cumpla siempre.

Concepto: agregados como frontera de consistencia~10 min

El punto de partida

Hasta ahora la serie ha mirado el banco desde lejos: qué significa cada palabra, dónde están las fronteras, cómo se hablan los contextos. Este episodio entra en uno de ellos, Operaciones, para responder una pregunta más pequeña y más difícil: qué se cambia a la vez.

La regla es conocida: un Bizum tiene un límite de 2.000 € al día por cliente. Para cumplirla, cada vez que Laura envía un Bizum alguien tiene que mirar cuánto ha enviado hoy y, si cabe, apuntarlo, sin que otro Bizum de Laura se cuele en medio. El trozo de datos que se mira y se cambia de una vez es un agregado.

Una mañana cualquiera

En la simulación hay siete operaciones en tres minutos: la nómina de Laura, los intereses de su hucha, un pago con tarjeta de Marcos desde la cuenta de casa y cuatro Bizum. Laura intenta enviar 2.300 € en total, así que el último debería rechazarse.

Elige cómo agrupar los datos en agregados y lanza la mañana. Mientras una operación usa un agregado, las demás que lo necesitan esperan. Prueba las tres formas.

Qué ha pasado

La lección es que un agregado se dibuja alrededor de una regla, no de una entidad. «Cliente» y «Cuenta» son cosas del negocio; «lo que hace falta para comprobar el límite diario» es lo que decide qué va junto. Y cuanto más pequeño es el agregado, menos se espera.

La cuenta conjunta, al final

El banco ya había decidido que el límite de Bizum sigue siendo por cliente: un Bizum desde la cuenta de casa cuenta para el límite de quien lo envía. Con el límite como agregado propio, la cuenta conjunta no cambia nada: el Bizum de Marcos va al límite de Marcos y el de Laura, al de Laura.

Si el banco hubiera decidido lo contrario (un límite por cuenta), el límite tendría que vivir dentro de la cuenta, y la cuenta conjunta enfrentaría a dos clientes por el mismo cupo. Una decisión de negocio y un agregado son la misma decisión vista desde dos lados, y es la misma pregunta que salió en rojo en la pared del episodio 2.

El precio de separar

Separar el límite de la cuenta tiene un coste. Un Bizum toca ahora dos agregados: primero descuenta del límite, después carga en la cuenta. Cada uno es coherente al instante por dentro, pero entre los dos solo hay garantía al cabo de un rato.

¿Qué pasa si el límite se descuenta y el cargo en la cuenta falla? ¿Y si Laura pulsa «enviar» dos veces? ¿Y si dos Bizum de Laura llegan exactamente a la vez a dos servidores distintos? Esas preguntas ya no van de dónde se corta el sistema, sino de qué pasa cuando algo falla a mitad. Son la siguiente serie: El dinero no se duplica.

Para llevarse

Y con esto termina Las áreas del banco. En siete episodios, New Capital Bank ha aprendido a darle a cada parte su lenguaje, a encontrar sus fronteras en una pared, a cortar por contextos y no por áreas, a protegerse del modelo de su proveedor, a elegir entre esperar y avisar, a decidir quién dirige un flujo y a dibujar sus agregados alrededor de las reglas.