Manual de ingeniería fintech: patrones para construir software que mueve dinero

Fuentes: Fintech Engineering Handbook: patterns for building software that handles money

El Fintech Engineering Handbook es un recurso abierto y vivo que reúne los patrones de diseño más importantes para construir sistemas software cuyo objeto principal es el dinero. La guía se dirige a profesionales que se incorporan al sector fintech, a quienes ya trabajan en él y a ingenieros de otros ámbitos que quieran entender qué cambia cuando se programa para flujos monetarios.

Todo el manual gira en torno a tres principios rectores: no inventar datos (no se puede crear ni duplicar dinero), no perder datos (trazabilidad, persistencia, inmutabilidad y precisión garantizada) y no confiar (verificar proveedores externos, componentes internos y webhooks).

Uno de los capítulos centrales aborda la representación del dinero. Se comparan cuatro enfoques: punto flotante (desaconsejado por pérdidas de precisión), precisión arbitraria con tipos como BigDecimal (útil en cálculos intermedios como tipos de cambio o pricing), precisión en unidades menores mediante enteros (el método recomendado para monedas fiat, siguiendo ISO 4217, y para cripto con magnitudes que pueden requerir enteros de anchura arbitraria) y números racionales (los más precisos pero más lentos y complejos). El texto insiste en que almacenar y calcular son decisiones independientes, y en que el dinero nunca debe serializarse como número JSON, sino como cadena o como entero en su unidad mínima.

También se detallan las estrategias de redondeo (explícitas, en las fronteras del sistema y con gestión de residuos), el manejo de divisas (empaquetar importe y moneda, prohibir aritmética entre monedas distintas, validar códigos contra un conjunto controlado y no confundir activos pegados con sus subyacentes) y los tipos de cambio FX, donde se distingue entre tasa transaccional, tasa de referencia, tasa direccional y tasa temporal, subrayando que no existe una tasa canónica única.