Pular para o conteúdo

apps/messaging-streaming/routing-slip

063 · Comunicação & Mensageria · ≈ 6 min de estudo

Routing Slip

O itinerário de processamento viaja dentro da própria mensagem, em vez de um orquestrador central decidir o próximo passo — diferente do Process Orchestrator, que centraliza a lógica de fluxo fora da mensagem. Cada etapa lê o itinerário anexado à proposta, executa sua parte, e encaminha para a próxima etapa listada.

passos
6
arquivos
6
teste
1
tecnologias
3
Lógica puraTypeScriptBunElysia
Baixar cartão

Cenário

Uma proposta de crédito passa por um conjunto de etapas que depende do perfil do cliente: cliente novo percorre KYC → Score → Compliance → Comitê; cliente recorrente passa só pelo Score, que aprova sozinho. O itinerário é montado uma vez, na criação da proposta, e viaja dentro dela. Cada etapa é um processo Elysia na própria porta e só sabe ler o próximo nome anotado na mensagem.

Planta

Fluxo
7/7
Origem: montaproposta e itinerárioKYC :8121Score :8122Compliance :8123Comitê :8124replyTo da origemPOST /processpróximo nome no slippróximo nome no slippróximo nome no slipsem próximo nomecliente recorrente:slip só com scoresem próximo nome
7

7 passos — reproduza para seguir o fluxo

Como funciona

6 passos

Itinerário viaja dentro da mensagem.

Esconde cada passo: lembre antes de tocar para revelar.

Vocabulário compartilhado

  1. 01

    itineraryBuild(perfil) monta a lista de etapas uma única vez, na origem; a proposta sai com stepIndexCurrent = 0 e o replyTo da origem

  2. 02

    A origem envia a proposta à etapa que o itinerário nomeia na posição atual

  3. 03

    A etapa confere que é ela a nomeada na posição — senão responde 409 e não processa

  4. 04

    Executa sua regra, acrescenta { step, result, at } ao history da própria mensagem e responde 202

  5. 05

    Se há próximo nome, encaminha para ele com a posição avançada; se não há, é a última e envia a proposta decidida ao replyTo

  6. 06

    Os mesmos quatro processos atendem os dois perfis — só o itinerário escrito na mensagem muda o caminho

apps/messaging-streaming/routing-slip

6 arquivos

src/

  • slip_credit.tsProposta com itinerário, regra do itinerário por perfil e envio para a etapa da posição atual
  • step_credit.tsEtapa como processo Elysia: confere a posição, executa, registra no history e encaminha ou finaliza
  • decision_credit.tsReceptor da decisão final na origem
  • config_credit.tsHost e portas das etapas, validados no boot
  • step_credit.test.tstesteEtapas em HTTP real: itinerário por perfil, caminho completo, caminho curto, limite do KYC e chamada fora de posição
  • demo.tsdemoSobe as quatro etapas como processos e envia três propostas

Executar · só Bun

  1. bun install# dependências
  2. bun run demo# roda o cenário
  3. bun run test# testes unitários
  4. bun run step kyc
  5. bun run step score
  6. bun run step compliance
  7. bun run step committee

Cada etapa também roda isolada:

Requisitos
Bun

Por que se relacionam

Comparação

Padrão Onde vive o fluxo Quem decide o próximo passo
Routing Slip Dentro da mensagem A mensagem, decidida uma vez na origem
Process Manager Componente central O orquestrador, a cada etapa
Pipes and Filters Configuração estática A ordem fixa, igual para todo caso

Teste rápido

Qual destes combina com Routing Slip?

Próximo projeto · Comunicação & MensageriaControl Bus
Esc

↑ ↓ navegarEnter abrir191 resultados