> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo funciona Lerian SILOC

> Ciclo de vida de la conexión del gateway, procesamiento de SFN configurado por MQ, envío de mensajes admitidos, entrega al menos una vez con desduplicación duradera, y gestión de certificados.

Lerian SILOC expone un pequeño conjunto de operaciones tipadas sobre la superficie `/api/v1/siloc`. La superficie en vivo cubre la conectividad y la administración. Un descriptor de conexión MQ de SILOC completo activa el procesamiento entrante de SFN, que envía los códigos de mensaje admitidos. El servicio también mantiene los registros de participantes, certificados y cobertura que respaldan este trabajo.

## Ciclo de vida de la conexión del gateway

***

Cuando un descriptor de conexión MQ de SILOC completo activa el procesamiento entrante de SFN, el servicio abre y mantiene **una** conexión de gateway de mensajería con el SILOC de Nuclea a través de la red del sistema financiero nacional. Cuatro protecciones resguardan la conexión:

* un **disyuntor** que se activa tras fallos repetidos,
* **reconexión automática** con un backoff limitado,
* una **parada por credencial deshabilitada** que detiene el gateway tras la revocación de un certificado, y
* una **sonda de readiness** que informa la conexión y el estado de salud del gateway.

El procesamiento entrante de SFN empieza cuando configuras el descriptor de conexión MQ de SILOC completo. Si no hay ningún disparador de conexión presente, el servicio arranca sin conectividad SILOC en vivo. Establecer `MQ_HOST`, `MQ_CHANNEL`, `MQ_QUEUE_MANAGER`, `MQ_SEND_QUEUE` o `MQ_RECEIVE_QUEUE` activa la validación del descriptor completo en el arranque. Proporcionar solo una parte del descriptor falla de forma cerrada e impide que el servicio arranque. Con el descriptor completo configurado, el servicio descifra y decodifica los mensajes entrantes desde el envelope regulado antes de enviar un mensaje admitido.

## Envío entrante de SFN

***

Después de la decodificación, la ingesta selecciona una ruta a partir de una política cerrada de **(`CodProdt`, `CodMsg`)**. Los mismos tres códigos de financiamiento tienen destinos diferentes según el producto:

\| Código | OT | SLC |
\| --- | --- |
\| **PAG0102** | Diferimiento duradero de apertura de período | Retransmisión a Lerian SLC |
\| **LDL0021** | Diferimiento duradero de instrucción de depósito | Retransmisión a Lerian SLC |
\| **PAG0103** | Diferimiento duradero de cierre de período | Retransmisión a Lerian SLC |
\| **PAG0101** | Diferimiento duradero del estado del participante | Diferimiento duradero del estado del participante |

El servicio no admite `LDL0020`, `LDL0006` ni ningún otro par de producto/código. Fallan de forma cerrada hacia una excepción operativa. El servicio nunca los retransmite como financiamiento de liquidación. Un envelope indecodificable o un mensaje con un `BCMSG.NUOp` en blanco sigue la misma ruta de fallo cerrado.

## Envío al menos una vez con desduplicación duradera

***

La fuente puede reenviar un mensaje, por lo que la retransmisión a SLC es **al menos una vez**. Para un frame de financiamiento de SLC decodificado correctamente con un `BCMSG.NUOp` no vacío, el servicio verifica la desduplicación duradera mediante **`BCMSG.NUOp`** antes de retransmitir. La política trata ese número de operación como único globalmente. El servicio no usa una clave basada solo en el ID de mensaje.

El servicio escribe el registro de mensaje procesado solo después de una retransmisión exitosa y antes de confirmar la recepción a la fuente. No crea ese registro para un mensaje no decodificado o no admitido. Un fallo antes de que se escriba ese registro puede dejar el mensaje elegible para otra entrega. No trates este comportamiento como una garantía incondicional de exactamente una vez de extremo a extremo.

## Resultados de fallos

***

* Un fallo de envío **reintentable** permanece sin confirmar. Con confirmaciones de fuente seguras por offset, el servicio vuelve a leer el mensaje después de un reinicio, desde el último offset confirmado. Un fallo transitorio persistente puede detener su partición hasta el reinicio.
* Un fallo **no reintentable**, como un envelope con formato incorrecto o un par (`CodProdt`, `CodMsg`) no admitido, falla de forma cerrada hacia una excepción operativa duradera. El servicio confirma el mensaje solo después de que se confirme ese registro de excepción, de modo que la partición pueda avanzar.
* El registro de mensaje procesado protege solo los mensajes decodificados correctamente y admitidos descritos arriba. No promete la retención de cada frame ni efectos de exactamente una vez en todos los sistemas downstream.

## Observabilidad de la ingesta

***

* **Listar mensajes procesados**: el feed de auditoría de los mensajes de SFN admitidos que el servicio envió.
* **Leer el estado de la ingesta**: el estado de salud actual de la ruta de ingesta habilitada, más la marca de tiempo del último envío.

## Directorio de participantes

***

Lerian SILOC mantiene un directorio de los participantes de SILOC para los que liquida. Tú **registras**, **listas**, **obtienes** y **actualizas** un participante, y lees el **estado** de un participante. Cada participante incluye su ISPB, su rol y su estado operativo.

Cada registro genera una entrada en el historial de estado y emite un hecho de participante. Las escrituras de registro son idempotentes mediante una clave de idempotencia, de modo que un registro reintentado no crea un duplicado.

| Rol                        | Significado                                                           |
| -------------------------- | --------------------------------------------------------------------- |
| **Directo**                | Un participante directo de SILOC.                                     |
| **Indirecto**              | Un participante que liquida a través de otra institución.             |
| **Institución liquidante** | La institución que liquida en nombre de los participantes indirectos. |

El estado operativo usa el dominio de siete valores de estado de SILOC:

| Valor | Estado                         |
| ----- | ------------------------------ |
| 1     | Participando                   |
| 2     | Excluido del ciclo             |
| 3     | Excluido de SILOC              |
| 6     | En ciclo, excluido de SILOC    |
| 7     | Suspendido                     |
| 8     | Suspendido, excluido del ciclo |
| 9     | Inoperativo (régimen especial) |

## Certificados regulados

***

El servicio conserva los certificados regulados de la conexión como referencias, no como secretos. Tú **registras** un certificado público junto con una **referencia de custodia externa**. El servicio analiza el certificado para obtener su asunto, número de serie y ventana de validez, y no almacena **ninguna** clave privada. Luego **listas**, **obtienes** y **revocas** certificados a través de la misma superficie.

## Cobertura de capacidades

***

Un **listado de capacidades** de solo lectura describe las capacidades de cobertura de liquidación como una superficie de transparencia. Para cada tipo de mensaje, informa la dirección, el estado de implementación y la disposición.
