Superfície de eventos atual: Kafka
Habilite a publicação em cada serviço produtor:
STREAMING_CLOUDEVENTS_SOURCE quando você habilitar o streaming. Use ledger para o binário do ledger, CRM e Fees. Use tracer para o Tracer. Cada serviço rejeita qualquer outro valor na inicialização.
O Midaz usa um tópico de fatos de aplicação v3 por serviço produtor:
- Ledger, CRM e Fees:
lerian.streaming.ledger - Tracer:
lerian.streaming.tracer
organization.createdtrafega porlerian.streaming.ledgertransaction.postedtrafega porlerian.streaming.ledgerfee_charge.appliedtrafega porlerian.streaming.ledgerrule.createdtrafega porlerian.streaming.tracer
studio.lerian.<source>.<resource>.<event>. Os headers ce-resourcetype e ce-eventtype carregam a chave de despacho separadamente. O header ce-tenantid está sempre presente para o Midaz. Ele carrega o tenant ID resolvido no escopo multi-tenant, e o literal default no escopo single-tenant ou sem tenant. O schema do payload é 1.0.0 para o catálogo atual.
O ledger e o Tracer disponibilizam, cada um, seu catálogo público de eventos de negócio em JSON e o mapeamento de tópicos em:
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. O Midaz registra falhas de publicação em log e não as retorna ao comando de negócio. Os consumidores ainda devem ser idempotentes e deduplicar por(ce-source, ce-id), porque a entrega do broker pode repetir um registro publicado. Valores monetários usam strings decimais. Nunca as interprete como ponto flutuante binário.
Checklist do consumidor
- Leia o manifesto do produtor.
- Inscreva-se no tópico de aplicação do produtor.
- Roteie por
ce-resourcetypeece-eventtype, não pelo formato do payload. - Valide
ce-schemaversionantes de decodificar. - Persista sua 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 overdraft e auditoria. Isso não é o catálogo completo do lib-streaming. A configuração de exemplo empacotada envia esses exchanges de saída desabilitados. Se você os habilitar, você é responsável pelos queue bindings,
ack/nack, dead-lettering, novas tentativas e isolamento de consumidores. O pipeline interno assíncrono de operação de saldo da transação, controlado por RABBITMQ_TRANSACTION_ASYNC, não é um feed público de eventos.
Use a superfície do Kafka para novas integrações, a menos que você dependa explicitamente de um contrato legado do RabbitMQ.
Compatibilidade com o Streaming Hub
O Streaming Hub segue os tópicos de aplicação v3 do Midaz
lerian.streaming.ledger e lerian.streaming.tracer. Por isso, uma subscription pode receber fatos do Midaz quando você habilita o produtor, a ingestão do hub e o runtime de destino. Corresponda usando a chave de evento de ce-resourcetype e ce-eventtype. Não espere um tópico Kafka por evento.

