Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

BIAN na prática: como um banco funciona por dentro/Padrões funcionais e action terms
Módulo 1 · O mapa· Aula 03/09

Padrões funcionais e action terms

Os 19 padrões com uma analogia do cotidiano para cada um, e os 17 verbos das operações.

5 min de leitura

Assista ao documentário do curso (~24 min)

Na aula anterior o Control Record ficou claro: é o objeto que um Service Domain cuida do começo ao fim. Falta a pergunta seguinte: cuida como? É isso que o padrão funcional responde em uma palavra, e é por isso que, quando abro um domínio novo, o padrão é a primeira coisa que leio. Esta aula apresenta os 19 padrões, com uma analogia do cotidiano para cada um, e os 17 verbos que aparecem em toda operação do BIAN.

O padrão é a pista mais rápida

Um Service Domain tem nome, Control Record, operações e atributos. Dá para ler tudo isso e ainda não saber como ele se comporta. O padrão funcional resolve isso em uma palavra: ele diz qual é o ciclo de vida do Control Record. Se nasce e morre numa transação, se acumula por anos, se emite um veredito e encerra.

Pense no padrão como a classe base de que o domínio herda. Duas classes com a mesma base têm o mesmo esqueleto de operações, mesmo que uma trate de cartão e a outra de câmbio. É isso que torna o BIAN previsível para quem programa: dominou o esqueleto de Fulfill, entende qualquer domínio Fulfill em metade do tempo.

Três padrões confundem quem começa porque parecem a mesma coisa, "olhar dados". Não são. Track acumula lançamentos ao longo do tempo e mantém uma posição, como um extrato. Assess dá um veredito pontual sobre um caso e pronto, como um detector de metais. Analyse lê o histórico inteiro e devolve uma leitura, como a nutricionista com o diário alimentar na mão.

Se o seu sistema de fraude tem uma pontuação recalculada a cada evento e um perfil revisto por mês, você tem dois padrões diferentes e, quase sempre, dois domínios. Separar isso antes de desenhar a API poupa a refatoração que viria depois.

Os 19 padrões funcionais, um por linha

PadrãoAnalogia do cotidianoO que o Control Record faz
FulfillPlano de academiaCumpre um acordo ao longo do tempo até encerrar
TransactCompra no caixaUma transação curta: começa, conclui, acaba
TrackExtratoAcumula lançamentos e mantém a posição
ProcessEmissão de faturaExecuta um procedimento em etapas até sair o resultado
Agree TermsContrato de aluguelNegocia e mantém os termos vigentes
CatalogAgenda de contatosMantém uma lista de referência consultável
AssessDetector de metaisAvalia um caso e emite veredito pontual
AnalyseNutricionista lendo o históricoLê o histórico e devolve uma leitura
MonitorTermômetroObserva um sinal contínuo e alerta no desvio
OperateCatracaOpera um recurso em uso contínuo

Quando o padrão muda, o domínio muda

O padrão não é rótulo decorativo. Ele define que operações existem e que estado o Control Record carrega. Por isso trocar o padrão é uma mudança real, não cosmética.

Na v14 alguns domínios mudaram de padrão. O exemplo mais limpo é Legal Advisory, que saiu de Fulfill para Advise. A leitura é direta: antes o domínio era modelado como quem cumpre um acordo de prestação de serviço jurídico, agora é modelado como quem responde a uma consulta. O Control Record deixa de ser um arranjo de serviço e passa a ser uma sessão de aconselhamento, e as operações seguem essa troca.

No mapeamento isso tem um uso prático. Quando um sistema seu "não cabe" no domínio que parecia óbvio, teste o padrão antes de inventar domínio novo. Pergunte: o que o meu sistema guarda, acumula, encerra ou emite? Se acumula, procure um Track. Se emite veredito, um Assess. Se mantém um acordo vivo, um Fulfill ou um Agree Terms. Na maioria das vezes o domínio aparece, e o que parecia lacuna era só padrão errado.

Vale também para avaliar o que uma IA propõe: um mapeamento que coloca um sistema de posição de saldo num domínio Assess está errado pelo padrão, antes de qualquer discussão sobre nome. A aula 08 volta a isso com grounding nas definições oficiais.

FA
Na prática
Arquiteto de TI Especialista

Quando recebo um inventário de sistemas para mapear, a primeira coluna que preencho é o padrão, não o domínio. Padrão se decide olhando o banco de dados do sistema: tabela que só cresce é Track, tabela de casos com status final é Assess, tabela de contratos com vigência é Agree Terms ou Fulfill. Com o padrão certo, a lista de domínios candidatos cai de dezenas para um punhado, e a discussão com o time vira "qual destes" em vez de "onde isso entra".

Ligar

Domínio e padrão funcional (v14)

Toque num conceito e depois na definição.

Os 17 action terms em quatro famílias

Toda operação de um Service Domain é um action term aplicado a uma parte do Control Record: Initiate abre, Update altera, Retrieve lê. São 17 verbos, organizados em quatro famílias conforme o que tocam.

Governar o domínio: Activate, Configure e Feedback. Não mexem em registro nenhum. Ligam o domínio, ajustam parâmetros e recebem retorno sobre o serviço. É o painel de administração, não a transação.

Criar registro: Initiate, Create, Register, Evaluate e Provide. Cada um abre uma instância nova do Control Record. O verbo muda com o padrão: um domínio Fulfill inicia, um Catalog registra, um Assess avalia. Mesmo efeito, nasce um registro, verbo escolhido pelo ciclo de vida.

Agir sobre registro: Update, Control, Exchange, Capture, Execute, Request e Grant. Alteram um registro que já existe. Control suspende e retoma, Exchange aceita ou rejeita, Capture grava um evento vindo de fora, Execute roda uma etapa, Request pede uma ação, Grant concede.

Ler sem alterar: Retrieve e Notify. Devolvem estado ou avisam que algo mudou, sem mudar nada. O guia do BIAN cita CQRS ao separar leitura de escrita; para quem já separa command de query, é a mesma ideia levada à borda do serviço. Na implementação isso significa que Retrieve pode ser servido pela réplica de leitura e os outros quinze ficam no caminho transacional. Decidir isso cedo evita que a API de consulta herde o lock da API de escrita.

Quatro famílias de action terms em volta do Control Record

Três verbos governam o domínio sem tocar em registro; cinco criam uma instância; sete alteram uma instância existente; dois leem ou avisam sem alterar nada, o lado de consulta do CQRS.

⚙️ Governar o domínio
  • Activate · Configure · Feedback · liga e parametriza o serviço
🏦 Service Domain
  • Configuração do domínio · parâmetros do serviço
  • Control Record · instância com ciclo de vida do padrão
🆕 Criar registro
  • Initiate · Create · Register · Evaluate · Provide
✏️ Agir sobre registro
  • Update · Control · Exchange · Capture
  • Execute · Request · Grant · altera estado existente
🔎 Ler sem alterar
  • Retrieve · devolve o estado atual
  • Notify · avisa que algo mudou

O que levar desta aula

O padrão funcional é o ciclo de vida do Control Record em uma palavra: leia-o antes do nome do domínio.
Track acumula, Assess dá veredito pontual, Analyse lê o histórico. Parecem iguais e são três padrões diferentes.
Troca de padrão é mudança real: Legal Advisory saiu de Fulfill para Advise na v14 e o Control Record mudou junto.
Os 17 action terms se dividem em governar o domínio, criar registro, agir sobre registro e ler sem alterar.
Retrieve e Notify são o lado de consulta; o guia do BIAN cita CQRS, e isso autoriza réplica de leitura desde o desenho.
Flashcards

Action terms por família

Toque num cartão para virar.

Perguntas que aparecem nesta altura

Todo Service Domain expõe os 17 verbos?

Não. Cada padrão usa o subconjunto que faz sentido para o seu ciclo de vida: um Catalog registra e consulta, um Fulfill inicia, atualiza, controla e consulta. A lista exata por padrão não é tema desta aula; na aula 04 você vê isso lendo um domínio até o OpenAPI.

Posso criar um action term próprio quando nenhum dos 17 serve?

Quase sempre o verbo que falta é um dos 17 mal escolhido, ou um sinal de que a operação pertence a outro domínio. Antes de inventar, pergunte se você está criando, alterando ou lendo um registro e se o registro é mesmo deste Control Record. Verbo fora do vocabulário quebra a previsibilidade que é o motivo de usar BIAN.

Concluir e ir para a próxima Aula anterior