Pular para o conteúdo principal
O Lerian STA é event-first em suas bordas. Uma transição para um dos seis desfechos abaixo grava a mudança de estado, um registro de auditoria e um registro de negócio em uma única transação de banco de dados, por meio de um outbox transacional. Os consumidores são os serviços de produto de origem que são donos dos arquivos que o Lerian STA entrega.

Canais de eventos


O Lerian STA publica nestes canais:
  • Um canal de auditoria que carrega a trilha de auditoria do Lerian STA: mudanças de credencial, mudanças de estado de transferência, ações de operador e desfechos de arquivos de entrada. Ele alimenta o log de auditoria do Lerian STA e roda quando AUDIT_PUBLISHER_ENABLED é true.
  • Um canal de negócio assinado, roteado como sta.{direction}.{sanitized-source-product} com um fallback unrouted, para consumidores de produtos externos. Ele carrega seis desfechos terminais de transferência. O campo status do payload nomeia o estado (Accepted, Rejected, Inconsistent, Canceled, DownloadFinished ou NotAuthorized), e outcome traz SUCCESS, FAILURE ou CANCELED. Ele também carrega os desfechos de envio do Reporter, roteados pelo nome do desfecho.
  • O stream de eventos, quando STREAMING_ENABLED é true. Ele carrega os mesmos desfechos como CloudEvents do tipo studio.lerian.br-sta.br_sta_transfers.<event>, em que <event> é accepted, rejected, inconsistent, canceled, download_finished ou download_not_authorized. Cada evento carrega o tenant default em ce-tenantid.
Os eventos de negócio carregam um error_code apenas para desfechos de falha e de cancelamento, e um cancelamento pelo operador o deixa vazio. Os eventos de sucesso de entrada carregam o claim-check.

O claim-check


Ao concluir um download de entrada, o Lerian STA emite seu evento terminal download-finished, roteado pelo produto de origem do arquivo. O evento carrega um claim-check (object_key, sha256, size_bytes e file_name), mas não os bytes em si. Para os fatos terminais de entrada, document_code carrega o código do BACEN observado. Quando o mnemônico persistido e o código se corroboram, document_type carrega o mnemônico. Caso contrário, ele mantém o código para compatibilidade. Um cancelamento pelo operador de uma transferência de entrada não carrega nenhum dos dois campos. O produto de domínio consumidor se inscreve na própria chave. Ele busca o artefato durável pela sua chave de objeto e reverifica o SHA-256. Em seguida, ele processa o arquivo. O Lerian STA é a fronteira de transporte e integridade. O produto consumidor é o dono do lançamento no ledger.

Fronteira do ledger


O Lerian STA não grava, por si só, no ledger da instituição. Ele entrega o arquivo e o claim-check. O produto consumidor é o dono de qualquer lançamento no ledger. Por exemplo, a Lerian SISBAJUD Mensageria lê os arquivos de ordem judicial, e o Lerian SISBAJUD executor executa as ordens no Midaz. Isso mantém o Lerian STA como uma camada pura de transporte e integridade, independente do significado de negócio de qualquer arquivo específico.

Envios regulatórios do Reporter


Quando REPORTER_EVENTS_CONSUMER_ENABLED é true, o Lerian STA consome o evento regulatory.filing_approved do Reporter. Ele envia o relatório aprovado ao BACEN como uma transferência de saída. Antes de enviar o relatório, o Lerian STA compara o arquivo armazenado com o artifact_sha256 do evento. O Lerian STA informa o resultado de um envio como um desfecho de envio. Ele publica o desfecho no canal de negócio assinado, com o nome do desfecho como routing key. Quando STREAMING_ENABLED é true, ele também publica o desfecho no stream de eventos. Os dois desfechos carregam report_id, document_id, document_version, event_id e source_event_id. source_event_id é o id do CloudEvent da aprovação, quando a aprovação tem um. Um desfecho entregue adiciona channel, protocol e delivered_at, o momento em que o Lerian STA observou a aceitação. Um desfecho recusado adiciona refused_at e reason. O reason é checksum_mismatch, digest_missing, credential_unavailable, malformed_approval, rejected_by_regulator, inconsistent_transfer, canceled ou transfer_failed.

Convenções de integração


  • Eventos acoplados ao commit. Um registro gravado com uma mudança de estado apenas fica disponível depois que essa mudança é commitada.
  • Claim-check, não payload. Os consumidores recebem uma referência ao artefato durável, buscam-no e reverificam seu SHA-256 antes de agir sobre ele.
  • Entrega pelo menos uma vez. Faça a deduplicação pelo event_id do payload, que permanece o mesmo para um fato terminal.
  • Subscription com chave. Os clientes escolhem suas subscriptions no broker. O STA roteia os desfechos de transferência assinados por direção e produto de origem sanitizado, com um fallback unrouted. Ele não impõe que apenas um subscriber possa receber um arquivo.