Todos os projetosLer em Markdown
Advisor Radar

O mesmo sinal, visto dos dois lados da conversa.

O Advisor Radar transforma eventos de conta e mensagens de clientes em trabalho priorizado para a assessoria financeira. Entre como cliente fictício para provocar sinais, ou como assessor para trabalhar a fila, revisar classificações incertas e acompanhar casos com SLA por segmento.

Visão do time

Fila em tempo real com alertas e mensagens priorizadas, revisão da triagem e painel com SLAs em risco.

Entrar como time

Visão do cliente

Saques, depósitos, mensagens e reclamações de clientes fictícios viram eventos no RabbitMQ e chegam à fila do time.

Escolher cliente

Três clientes, três inícios diferentes, nenhuma linha de front escrita para cada um.

O BFF devolve a tela como página, seções e componentes, já preenchida para o momento do cliente. O app só renderiza.

Ver como funciona

Quem precisa de atenção agora, e por quê.

O Advisor Radar transforma eventos de conta e mensagens de clientes em trabalho priorizado para a assessoria financeira. Entre como cliente fictício para provocar sinais, ou como assessor para trabalhar a fila, revisar classificações incertas e acompanhar casos com SLA por segmento.

Alertas proativos

Regras determinísticas identificam saques, quedas de patrimônio, aportes grandes, mudanças de segmento, clientes sem contato e compras acima do perfil.

Triagem de mensagens

Intenção, frustração, risco de saída e pedido humano. Confiança abaixo de 0,85 segue para revisão humana; falhas do modelo usam fallback heurístico marcado.

Casos com SLA

Aberto, em atendimento, aguardando cliente, resolvido. SLAs por segmento escalam por TTL e dead-letter exchanges do RabbitMQ.

Telas pelo servidor

O backend escolhe a variante de cada seção pelo momento do cliente. O frontend renderiza um catálogo fixo de componentes.

Como uma reclamação chega à fila do assessor

HTTPSSEgRPCalert.raised · case.*
webApp e filaReact · TypeScript · Vite
bffGo · HTTP · SSEAgrega via gRPC · sem banco
account-simGo · conta e mensagensPostgreSQL · outbox
RabbitMQEventos correlacionados por event_idmessage.receivedmessage.triagedaccount.event.recordedalert.raisedcase.openedcase.sla.breachedInbox por event_id · DLQ por fila · TTL + DLX
triageGo · classificaçãoPostgreSQL · fallback
externoJevAI Gateway
advisoryGo · regras de alertaPostgreSQL · gRPC
casesGo · casos e SLAPostgreSQL · gRPC
timeline-indexerGo · visão 360Indexa a timeline
buscaElastic­search
01
O cliente abre uma reclamação no app

O app React envia HTTP/JSON versionado ao BFF, que valida e repassa o comando.

Neste passoPOST /v1/client-pov/customers/{id}/complaintscorrelação por event_id

O produto

O Advisor Radar transforma eventos de conta e mensagens de clientes em trabalho priorizado para a assessoria financeira. Entre como cliente fictício para provocar sinais, ou como assessor para trabalhar a fila, revisar classificações incertas e acompanhar casos com SLA por segmento.

  • Go
  • React
  • TypeScript
  • PostgreSQL
  • RabbitMQ
  • Elasticsearch
  • gRPC
  • Jev
  • OpenTelemetry

O fluxo principal

  1. O cliente abre uma reclamação no app

    O app React envia HTTP/JSON versionado ao BFF, que valida e repassa o comando.

  2. O BFF entrega o comando ao account-sim

    O gRPC propaga deadline e contexto de tracing ao serviço de conta.

  3. Mensagem e evento gravados na mesma transação

    O PostgreSQL salva a mensagem e a outbox na mesma transação. Se o broker estiver indisponível, o evento continua disponível para entrega.

  4. O relay publica no RabbitMQ

    O evento contém event_id, occurred_at, customer_id e schema_version para correlação dos eventos. A propagação de contexto de trace pelo RabbitMQ ainda não está implementada.

  5. A triagem classifica a mensagem

    A inbox idempotente deduplica por event_id. O Jev classifica intenção, frustração, risco de saída e pedido humano. Um fallback heurístico marcado cobre a indisponibilidade do modelo; confiança abaixo de 0,85 segue para revisão humana.

  6. Uma regra gera o alerta e o caso ganha SLA

    Regras determinísticas do advisory geram alertas. O cases usa o segmento do cliente no SLA; TTL e dead-letter exchanges do RabbitMQ controlam o escalonamento.

  7. A visão 360 é atualizada

    O timeline-indexer grava eventos, mensagens classificadas e casos no Elasticsearch para a busca na visão 360 do cliente.

  8. O alerta aparece na fila do assessor

    O BFF consome alert.raised e envia a atualização por SSE, sem recarregar a página.

Arquitetura

React → HTTP/JSON → BFF → gRPC → account-sim → PostgreSQL + outbox

Relay da outbox → RabbitMQ → triage / advisory / cases / timeline-indexer

Jev → classificação tipada · Elasticsearch → timeline · BFF → SSE → React

Advisor Radar

Seis serviços Go

account-sim, triage, advisory, cases, timeline-indexer e o BFF sem estado têm responsabilidades explícitas. Cada serviço com estado possui seu PostgreSQL; o RabbitMQ transporta eventos.

Telas do cliente dirigidas pelo servidor

O BFF retorna um schema tipado de página, seções e componentes para o momento do cliente. O React renderiza um catálogo fixo. A apresentação incorporada mantém três abas de clientes, JSON ao vivo, regras dos componentes, rolagem e nova tentativa. A prévia do telefone é intencionalmente somente leitura.

Server-Driven UI ao vivo

Demonstração interativa em português. O telefone é uma prévia somente leitura. Se o serviço incorporado estiver indisponível, abra a aplicação diretamente.

Escolher cliente

Disponibilidade e limites

Demonstração técnica com clientes, nomes, marcas e movimentações fictícios. Sem vínculo com instituição financeira real e sem envio de mensagens a clientes reais. A SDUI interativa requer JavaScript e BFF disponível; esta explicação não. Uma meta de latência não representa um resultado medido.