Package br.com.xadm.comum.mensageria
package br.com.xadm.comum.mensageria
xadm-mensageria — entrega garantida M2M via outbox transacional (ADR 0019, raiz/004, Fase 3 da
iniciativa libs+contrato). Generaliza o padrão bom do encerramento (int-sascar) em capacidade
reusável da casa: uma tabela genérica (
MensagemM2m), um relay
@Scheduled com backoff/teto/PAUSADO (RelayM2m), uma SPI
de envio tipado (EnviadorMensagem) que cada app implementa
chamando o @Client gerado do OpenAPI, e uma tela /admin/mensageria
(MensageriaController) restrita a admin @xadm.com.br
(MensageriaAdminRule).
O motor é agnóstico de domínio; o dispatch é tipado (um bean EnviadorMensagem por
tipo, no app). Semântica AT-LEAST-ONCE: sob N instâncias o relay pode despachar em dobro —
o receptor deduplica por chave natural de negócio (a lib não faz dedup nem lock de linha). Schema
é owned pelo app (sem Flyway na lib); o DDL canônico é publicado em db/mensagem_m2m.postgres.sql.
-
ClassDescriptionDireção da mensagem M2M.SPI de envio tipado.Retenção: poda os terminais de auditoria (
ENVIADO/RECEBIDO) mais velhos quemensageria.retencao-dias(default 30).Linha do outbox/auditoria M2M (tabelamensagem_m2m).Repositório Data JDBC daMensagemM2m.Gate da tela/admin/mensageria: exige sessão autenticada E e-mail terminando no domínio configurado (mensageria.admin.email-domain, defaultxadm.com.br).Configuração do motor (mensageria.*).Sub-configmensageria.admin.*.Sub-configmensageria.relay.*.Tela de operador/admin/mensageria(Thymeleafviews/mensageria.html).API do motor para os apps + transições de estado usadas pelo relay/tela.Relay durável do outbox.Resultado de uma tentativa de envio, devolvido peloEnviadorMensagem.Indexa osEnviadorMensagemdo app portipo()e resolve o despacho.Máquina de estado da mensagem M2M.