Saltar al contenido principal

Matriz de garantías

El kernel es la única puerta a la base de datos. Las garantías se hacen cumplir en el kernel, y esta matriz registra dónde.

Los componentes que hacen cumplir una fila se etiquetan Guarantee en el modelo C4 y aparecen con el sello ámbar en el diagrama de componentes (ver Convenciones de diagramas).

El estado puede ser enforced, partial o gap. Mientras una fila no esté verificada contra el código, queda en TODO.

Componentes con sello​

Componentes que hacen cumplir una fila de la matriz, y sus vecinos directos
Diagrama: Componentes que hacen cumplir una fila de la matriz, y sus vecinos directos

La columna «Componente (C4)» sale del modelo: es el componente etiquetado Guarantee cuya perspectiva «Garantías» nombra esa fila. Es un mapeo del modelo, no una verificación: el estado sigue en TODO hasta cotejarlo con el código.

Matriz​

#GarantíaComponente (C4)Enforced by (componente / archivo)Verified by (test)Status
1El dinero no se crea ni se destruye: sum(ledger) = 0 por unidadCompositeTransactionService, CounterpartyValidatorTODO
2Toda intención de transacción persiste, incluso las rechazadasEventTraitsSpec.phase (BEFORE_COMMIT por defecto) y PersistOutboxStep: el evento primario se escribe en la transacción del handlerPrimaryEventAtomicityTest (OCT-49): ninguna intención APPROVED queda sin su fila de outboxpartial
3Las entradas del ledger son append-onlyTODO
4Las cuentas que no son SETTLEMENT nunca quedan en negativoBalanceValidatorTODO
5Una selección de shard inválida falla de forma explícita, nunca cae silenciosamenteShardResolverImplTODO
6Los montos son Long en todos lados; la evaluación de expresiones nunca truncaTODO
7Que falle la resolución de la serial key es un error, nunca un UUID aleatorioProfileSpecValidatorProfileInterpreter.resolveSerialKey (transacciones) y EmitPrimaryEventStep (clave de serialización del evento primario) lanzan SERIAL_KEY_RESOLUTION_FAILEDProfileInterpreterInputValidationTest, PrimaryEventKeyResolutionTest (OCT-50)partial
8Un limitRef desconocido es un error (fail-closed)LimitValidatorTODO
9Aislamiento de tenant en toda tabla de negocioTODO
10Las intenciones vencidas se revierten automáticamenteTODO

Notas de las filas verificadas:

  • Fila 2 (partial): el test verifica que una intención aprobada no queda sin su evento cuando falla algo después del commit del handler. No verifica todavía que las intenciones rechazadas persistan.
  • Fila 7 (partial): cubre la resolución de la serial key del perfil y la del evento primario. El test del intérprete cubre el caso de serialStrategy ausente; no se recorrieron los demás caminos de fallo de resolveSerialKey ni los eventos emitidos con emit(payload) en ExecutionRuntimeBusImpl, que siguen sin validar la clave.