Laura no ve su Bizum · Episodio 5 de 6

Una ficha para leer

La ficha de Atención ya recibe los cambios de los cinco contextos. Falta decidir cómo se guarda: calcularla cada vez, preguntando a todos, o tenerla ya hecha y ponerla al día con cada evento. La segunda se llama proyección, y separar el modelo de leer del de escribir, CQRS.

Concepto: proyecciones; CQRS~10 min

El punto de partida

La ficha de Atención ya recibe los cambios de los cinco contextos (episodio 4). Falta decidir cómo se guarda. Hay dos formas. Una es no guardar nada y calcularla cada vez que la agente la abre, preguntando a Alta, Cuentas, Operaciones, Tarjetas y Fraude. La otra es guardarla ya hecha: un documento por cliente, que se actualiza con cada evento que llega.

La segunda es una proyección: una vista construida a partir de los eventos y pensada para quien la lee.

Una agente abre la ficha

Laura llama: algo no cuadra. La agente abre su ficha. A la izquierda, la ficha se calcula en el momento, llamando a los cinco contextos uno tras otro. A la derecha, se lee una sola ficha ya hecha. Primero con todo en orden; después, estropea Operaciones.

Qué ha pasado

Es una buena noticia para Atención, que ya tenía dicho que tolera un minuto de retraso: mejor una ficha ligeramente vieja que una ficha que no abre. Y se puede decir a la agente cuánto: la ficha enseña cuándo se actualizó por última vez.

Una ficha que se tira y se rehace

La proyección tiene otra ventaja, que no se ve mientras todo va bien. Como se construye a partir de los eventos, se puede borrar y volver a construir pasando de nuevo toda la historia. Atención pide ahora ver los recibos devueltos. O se descubre un error: la ficha contaba al revés las devoluciones y el saldo no cuadra con el de Cuentas.

Elige uno de los dos casos y reconstruye la ficha. Mientras tanto, la actual sigue sirviendo.

Qué ha pasado

Una proyección es desechable justo porque no es de donde sale la verdad.

CQRS, y dónde no usarlo

Lo que acaba de hacer el banco tiene nombre: separar el modelo con el que se escribe (Cuentas, con sus reglas y su base de datos) del modelo con el que se lee (la ficha, hecha a medida de Atención). Es CQRS.

Tiene un precio que conviene tener claro:

Por eso no se aplica a todo el banco. Se aplica donde leer y escribir piden cosas distintas, como en la ficha de Atención, y se deja fuera donde una sola base de datos hace bien las dos cosas.

Para llevarse

Falta el último lector. Cumplimiento necesita todos los movimientos de todas las cuentas, y el día 5 tiene que entregar un informe al regulador.