ADR-003 Cards como consumidor externo
- Estado: proposed
Contexto
Se quiere un procesador de tarjetas (emisor y adquirente) para demostrar que el kernel soporta un caso de uso real de alta exigencia. Si se construye dentro de octopus-api, el kernel absorbe modelo de producto, que es justamente lo que no debe tener.
Decisión
El procesador de tarjetas (issuer + acquirer) se construye fuera de octopus-api. Depende solamente de octopus-sdk y octopus-protos, nunca de octopus-api, y habla con el kernel por gRPC.
Mapeo a operaciones del kernel:
| Evento de tarjeta | Operación del kernel |
|---|---|
| Autorización | HOLD |
| Reverso | RELEASE |
| Clearing | CAPTURE |
| Settlement | BALANCED contra cuentas SETTLEMENT |
| Chargeback | BALANCED inverso |
Se usan dos tenants (issuer y acquirer). Las transacciones on-us deben netear a cero entre ambos.
Prerrequisitos en el kernel:
- Job de expiración automática de intenciones.
- Latencia medida del camino de autorización.
Consecuencias
- Depende de la extracción del SDK (ADR-002).
- El kernel no gana ningún concepto de tarjeta.
- La operación entre tenants se coordina fuera del kernel, que no procesa operaciones cross-tenant.