Núcleo de pagos. Byte4Bit, 2023 hasta hoy. Ingeniero backend senior. Node.js, TypeScript, AWS.

88Pay

Un núcleo de pagos que lideré desde cero a través de una migración completa a microservicios: pagos, cuentas, identidad, ficheros, analítica, notificaciones y APIs públicas.

Rol
Líder, backend
Desde
2023
Dominios
07
Cloud
AWS
Ver el producto Índice
Fig. 01. 88pay.io, el producto detrás del que corre este núcleo.

El problema

Un núcleo de pagos no es un servicio que creció demasiado. Son siete conversaciones distintas sobre fallos vistiendo un solo despliegue, y la primera decisión de migración es dónde van las costuras.

Lideré el núcleo desde cero: pagos, cuentas, identidad, ficheros, analítica, notificaciones y las APIs públicas, como servicios en Node.js y TypeScript moviendo dinero real con validación estricta, rate limiting, código seguro y observabilidad.

Node.jsTypeScriptAWSMicroservicesObservability

Siete dominios con sus propias fronteras

Cada contexto es dueño de sus datos y de su modo de fallo, así que un incidente en notificaciones no es un incidente en pagos.

Validación antes de que el dinero se mueva

En un sistema de pagos un bug es un problema contable, así que la validación estricta y el rate limiting van en la primera versión y no en una pasada de endurecimiento.

Las APIs públicas como superficie deliberada

El contrato externo se diseña en lugar de filtrarse, que es lo que evita que una refactorización interna se convierta en una rotura de cara al cliente.

Decisiones y el precio que pagué por ellas

Dividir por dominio, no por capa

Las fronteras siguen los siete contextos de negocio, así que un cambio en cómo funcionan las cuentas toca un servicio en lugar de una capa horizontal que los cruza todos.

Trade-off aceptado

Siete desplegables cuestan más atención operativa que uno, y algunos flujos ahora cruzan una frontera de red que antes era una llamada a función.

Tratar cada escritura como un evento contable

La validación estricta, el rate limiting y la revisión de código seguro van delante de cualquier cosa que mueva dinero, porque el coste de una escritura equivocada no es un reintento.

Trade-off aceptado

Más peticiones rechazadas en el borde, y más trabajo para dejar pasar una transacción legítima pero inusual.

Observabilidad como requisito de primera clase

Un sistema de dinero tiene que responder "qué le pasó a esta transacción" como una consulta, no como una investigación.

Trade-off aceptado

La instrumentación se escribe junto a la funcionalidad y se mantiene para siempre, la lea alguien o no.