Skip to main content
O Midaz emite CloudEvents para fatos de negócio do ledger, CRM, Fees e Tracer. O contrato completo atual é a superfície de Kafka/lib-streaming. Os exchanges legados do RabbitMQ carregam apenas um subconjunto de compatibilidade.

Superfície atual de eventos — Kafka


Habilite a publicação em cada serviço produtor:
STREAMING_CLOUDEVENTS_SOURCE é obrigatório quando o streaming está habilitado. Use ledger para o binário do ledger, CRM e Fees, e tracer para o Tracer; cada serviço rejeita qualquer outro valor na inicialização. O Midaz usa um tópico de fatos por aplicação v3 para cada serviço produtor:
  • Ledger, CRM e Fees: lerian.streaming.ledger
  • Tracer: lerian.streaming.tracer
Exemplos:
  • organization.created trafega em lerian.streaming.ledger
  • transaction.posted trafega em lerian.streaming.ledger
  • fee_charge.applied trafega em lerian.streaming.ledger
  • rule.created trafega em lerian.streaming.tracer
O tipo CloudEvents é qualificado pela fonte: studio.lerian.<source>.<resource>.<event>. ce-resourcetype e ce-eventtype carregam a chave de dispatch em cabeçalhos separados. O schema do payload é 1.0.0 para o catálogo atual. O ledger e o Tracer servem seu catálogo exato e o mapeamento de tópicos em:
A rota permanece disponível mesmo quando a publicação está desabilitada. Use-a como contrato do deployment em vez de adivinhar tópicos. A referência de eventos do Midaz e a referência de eventos do Tracer listam cada evento e payload.

Semântica de entrega

O Midaz publica esses eventos de negócio diretamente após a mudança de estado. Ele não os persiste em um outbox de streaming, e falhas de publicação são registradas em logs em vez de retornarem ao comando de negócio. Seus consumidores ainda precisam ser idempotentes e deduplicar por (ce-source, ce-id), pois o broker pode repetir um registro publicado. Valores monetários usam strings decimais; nunca os analise como ponto flutuante binário.

Checklist do consumidor

  1. Leia o manifesto do produtor.
  2. Assine o tópico da aplicação do produtor.
  3. Roteie por ce-resourcetype e ce-eventtype, não pelo formato do payload.
  4. Valide ce-schemaversion antes de decodificar.
  5. Persista a chave de deduplicação antes de confirmar o registro.

Superfície legada do RabbitMQ


O Midaz também mantém exchanges legados do RabbitMQ para eventos selecionados de transação, overdraft e auditoria. Essa não é a totalidade do catálogo da lib-streaming. A configuração de exemplo entrega esses exchanges de saída desabilitados. Se você os habilitar, será responsável por bindings de fila, ack/nack, dead-lettering, retentativas e isolamento de consumidores. O pipeline interno assíncrono de operações de saldo controlado por RABBITMQ_TRANSACTION_ASYNC não é um feed público de eventos. Use a superfície Kafka para novas integrações, a menos que dependa explicitamente de um contrato legado do RabbitMQ.

Compatibilidade com o Streaming Hub


O Streaming Hub acompanha os tópicos da aplicação v3 do Midaz lerian.streaming.ledger e lerian.streaming.tracer. Portanto, uma assinatura pode receber fatos do Midaz quando o produtor, a ingestão do hub e o runtime do destino estão habilitados. Faça o match pela chave do evento em ce-resourcetype e ce-eventtype; não espere um tópico Kafka por evento.

Decisão