Skip to main content
O Lerian SILOC é orientado a eventos nas suas bordas. Com uma conexão MQ do SILOC configurada, ele consome mensagens SFN aceitas da Núclea e emite fatos na plataforma. Ele não tem consumidores de webhook voltados ao cliente. Sistemas downstream se inscrevem nos tópicos de streaming em vez de receber callbacks.

O que ele consome


  • Mensagens SFN da Núclea. Com o descritor completo de conexão MQ do SILOC configurado, o Lerian SILOC descriptografa e decodifica cada mensagem de entrada a partir do envelope regulatório e, em seguida, a roteia por uma política fechada de (CodProdt, CodMsg). LDL0020, LDL0006 e todo outro par não aceito falham de forma fail-closed para uma exceção de operador. Consulte Como o Lerian SILOC funciona para as rotas.
  • Fatos de liquidação LDL do SPB, quando LDL_FACT_CONSUMER_ENABLED=true. Cada fato registra o resultado da instrução que ele nomeia.
  • Comandos de cartão do Lerian SLC, quando CARD_COMMAND_CONSUMER_ENABLED=true. O serviço envia cada comando à Núclea e publica seu resultado.

Semântica de ingestão e entrega


  • O repasse do SLC é pelo menos uma vez. Para um frame de funding do SLC decodificado com sucesso e com um BCMSG.NUOp não vazio, a chave de deduplicação durável é a parte da mensagem: BCMSG.NUOp e seu número de parte, NumSeq.
  • O serviço grava esse registro de mensagem processada apenas depois de um repasse bem-sucedido. Ele não cria registro de mensagem processada para uma mensagem não decodificada ou não aceita. Uma falha antes da gravação do registro pode resultar em outra entrega, então esse comportamento não é uma garantia incondicional de exatamente uma vez de ponta a ponta.

O que ele emite


  • Fatos de participante. O Lerian SILOC publica studio.lerian.br-siloc.siloc_participant.registered, studio.lerian.br-siloc.siloc_participant.updated e studio.lerian.br-siloc.siloc_participant.status-changed como CloudEvents no backbone de streaming da plataforma. Sistemas downstream acompanham o diretório de participantes sem fazer polling.
  • Fatos operacionais. Transições de alerta (studio.lerian.br-siloc.siloc_alert.raised, studio.lerian.br-siloc.siloc_alert.cleared e studio.lerian.br-siloc.siloc_alert.acknowledged), alterações de cronograma, avisos da câmara, respostas às requisições da instituição, resultados multilaterais da câmara e fatos de liquidação de ciclos OT.
  • Requisições com falha. Quando uma requisição de saída termina FAILED, o Lerian SILOC publica studio.lerian.br-siloc.siloc_outbound.failed na mesma transação da mudança de status. Nenhuma resposta e nenhuma recusa vêm depois dele. O evento traz id, codMsg, numCtrlIF, nuop, ispbIF, ispbLDL, codProdt quando a requisição tem um, status, reason e failedAt. reason é schema_invalid, unregistered_code, lbtr_closed, movement_day_ended ou movement_day_unreadable. Para uma requisição que dois operadores encerraram, reason é closed as failed by two operators: the câmara never answered a put whose outcome was unknown.

Nenhum ponto de contato com o Midaz


O Lerian SILOC não tem integração direta com o ledger. Ele não mantém posição contábil. Ele roteia bytes e emite fatos. Este trilho não contabiliza dinheiro. A liquidação da posição líquida acontece no SILOC e no STR. Qualquer lançamento contábil fica a cargo do serviço dono da movimentação de dinheiro.

Limite do caminho do dinheiro


O trilho STR separado, Lerian SPB, executa a perna de depósito do STR, a liquidação monetária no BACEN. O SILOC não faz isso. O Lerian SILOC transporta as mensagens do SILOC e administra a conexão. Ele nunca movimenta dinheiro. Ele envia as requisições de transferência e de saque da instituição à Núclea, que as executa.

Convenções de API


  • O path base é /api/v1/siloc, e os erros seguem o formato RFC 9457 de problem-detail.
  • A autenticação segue o esquema padrão de bearer-token da plataforma.
  • Idempotência. Uma requisição que altera estado precisa de um header X-Idempotency de até 255 caracteres. Dentro de 24 horas, repetir a mesma requisição com a mesma chave retorna a resposta armazenada em vez de executar o comando de novo. Uma requisição recusada com um 4xx não consome sua chave. Uma repetição que chega enquanto a primeira requisição ainda executa responde 409 SILOC-0009. Para uma requisição de saída, a chave retida por uma instância do serviço que parou é liberada em cerca de um minuto.
  • Quando o armazenamento de idempotência falha. Um 503 SILOC-0002 significa que o armazenamento falhou antes de o comando executar: repita com a mesma chave. Quando só o recibo se perde depois de o comando executar, você recebe a resposta do próprio comando com o header X-Idempotency-Fenced. Uma duplicata cuja resposta armazenada não pode ser reproduzida recebe 409 SILOC-0009: reconcilie a requisição original e nunca a repita com uma chave nova.
  • Certificados são referências, não segredos. Um certificado registrado carrega um certificado público e uma referência de custódia externa. Ele não armazena nem retorna nenhuma chave privada.