Camadas do mapa e Control Record
Ler o landscape de cima a baixo e entender o registro que cada domínio controla.
5 min de leitura
Assista ao documentário do curso (~24 min)Abrir o Service Landscape do BIAN pela primeira vez é como abrir o mapa de metrô de uma cidade que você não conhece: centenas de caixas, duas versões do mesmo mapa e nenhuma legenda óbvia. A boa notícia é que o mapa tem só seis camadas, e dá para atravessar todas com um único exemplo: a conta corrente. Nesta aula você desce do topo até a operação de serviço e descobre por que a camada do meio, o Control Record, é a que mais responde pergunta de arquiteto.
Seis camadas, uma conta corrente
Pense no landscape como um namespace de seis níveis. Cada nível restringe o anterior, e o exemplo da conta corrente cabe inteiro nele.
Business Area: a fatia mais larga do banco. Conta corrente vive em Operations and Execution, a área que executa produtos e transações no dia a dia.
Business Domain: um agrupamento dentro da área. Aqui é Loans and Deposits, onde moram os produtos de captação e crédito.
Service Domain: a unidade que importa. Current Account é um Service Domain: uma capacidade de negócio com responsabilidade única, que não se divide mais. É o nível em que você faz heatmap, atribui dono e desenha fronteira de API.
Control Record: o registro que o domínio controla. Para Current Account é CurrentAccountFacility, a conta em si com tudo que ela guarda e decide.
Behavior Qualifier: uma fatia do Control Record. AmountBlock é a fatia que trata bloqueio de valor na conta; DebitandCredit é a que trata lançamentos.
Service Operation: a ação executável sobre uma fatia. InitiateAmountBlock cria um bloqueio. É o que vira endpoint na Semantic API.
Se você programa, a analogia que funciona é pacote, módulo, classe, estado, atributo composto e método. Não é perfeita, mas acerta no essencial: a hierarquia não é organograma, é escopo. Cada nível responde onde uma coisa mora, e só isso. A aula 03 trata os action terms, como o Initiate de InitiateAmountBlock; aqui o objetivo é ler o caminho inteiro sem se perder.
A pirâmide de camadas, com a conta corrente em cada nível
Do mais amplo ao mais específico. A value chain é outra estante para o mesmo Service Domain: do Current Account para baixo, nada muda.
- Operations and Execution
- Loans and Deposits
- Current Account · padrão Fulfill
- CurrentAccountFacility · Current Account + Fulfill
- DebitandCredit
- AmountBlock
- +7 outros · +7 others
- InitiateAmountBlock
- Semantic API · endpoint (aula 04)
Duas visões, os mesmos Service Domains
O BIAN publica o landscape em duas visões, e a primeira confusão de todo mundo é achar que são dois mapas. São duas estantes para os mesmos livros.
Matriz: cinco Business Areas (Reference Data, Sales and Service, Operations and Execution, Risk and Compliance, Business Support) e 38 Business Domains. É a visão de capacidade: agrupa pelo tipo de coisa que o domínio faz, independentemente de quem usa.
Value chain: oito áreas, organizadas pela sequência em que o valor é produzido. É a visão de processo: responde 'em que ponto da cadeia isso acontece'.
Current Account é o mesmo Service Domain nas duas, com o mesmo Control Record e os mesmos Behavior Qualifiers. Muda só a prateleira em que ele aparece.
Por que manter as duas? Porque arquiteto e negócio fazem perguntas diferentes. Quando eu faço heatmap de sistemas, uso a matriz: quero saber quais capacidades estão cobertas, duplicadas ou órfãs, e o agrupamento por tipo deixa isso visível. Quando preciso explicar para uma área de produto onde entra a parte dela, a value chain fala a língua do fluxo.
A regra prática: escolha uma visão por entregável e diga qual é no cabeçalho. Misturar as duas no mesmo desenho é a forma mais comum de produzir um mapa que ninguém contesta porque ninguém consegue ler.
Control Record: o que o domínio guarda e decide
Se eu pudesse ensinar só um conceito do BIAN para um time, seria este.
Todo Service Domain segue um padrão funcional (a aula 03 lista os padrões). Current Account segue o padrão Fulfill: ele cumpre um produto contratado. O Control Record é o resultado de aplicar esse padrão a um tipo de ativo. Current Account + Fulfill = CurrentAccountFacility: a conta corrente como instância viva, com saldo, lançamentos, bloqueios e tudo que o domínio precisa acompanhar para cumprir o produto.
Pense nele como o agregado raiz do domínio, no sentido de DDD. É o registro cujo ciclo de vida o Service Domain controla do começo ao fim. Ninguém mais cria, altera ou encerra uma CurrentAccountFacility sem passar por Current Account.
É por isso que o Control Record responde a pergunta que mais trava reunião de arquitetura: quem é dono desse dado? Se o dado faz parte do Control Record de um domínio, aquele domínio é a fonte da verdade. Os outros consultam ou recebem evento. Quando dois sistemas gravam saldo de conta cada um do seu jeito, não é problema de integração, é dois donos para um Control Record.
Os Behavior Qualifiers dividem o Control Record em fatias MECE: mutuamente exclusivas e coletivamente exaustivas. Nada cai em duas fatias e nada fica de fora. Current Account tem nove na v14; DebitandCredit e AmountBlock são duas delas. Na hora de mapear um sistema legado, essa divisão vira checklist: cada fatia que o sistema não cobre é lacuna explícita, não suposição.
Do mais amplo ao mais específico
Ordene as camadas do mapa usando o exemplo da conta corrente.
- 1AmountBlock (Behavior Qualifier)
- 2CurrentAccountFacility (Control Record)
- 3Operations and Execution (Business Area)
- 4InitiateAmountBlock (Service Operation)
- 5Current Account (Service Domain)
- 6Loans and Deposits (Business Domain)
O que levar desta aula
Na prática, eu começo todo mapeamento pelo Control Record, não pelo nome do Service Domain. Nome engana: dois times chamam de 'conta' coisas diferentes. Quando eu pergunto 'qual registro esse sistema cria, altera e encerra sozinho?', a resposta aponta o Service Domain certo em minutos, e a lista de Behavior Qualifiers diz na hora o que ele cobre e o que ele só consulta de outro lugar. Mapeamento que pula o Control Record costuma virar inventário de sistemas com rótulo BIAN colado por cima.
Checagem rápida
Perguntas frequentes
Service Domain e Control Record são a mesma coisa com dois nomes?
Não. O Service Domain é a capacidade (quem faz); o Control Record é o registro que ela controla (o que ela guarda e decide). Current Account é o domínio, CurrentAccountFacility é o registro.
A hierarquia muda entre a matriz e a value chain?
Mudam as camadas acima do Service Domain, que é onde cada visão agrupa do seu jeito. Do Service Domain para baixo (Control Record, Behavior Qualifier, Service Operation) é idêntico nas duas.
Posso criar um Behavior Qualifier novo para o meu banco?
Pode estender, mas antes verifique se a necessidade não cabe numa das fatias existentes. Como a divisão é MECE, um qualifier novo que sobrepõe outro quebra a regra e a interoperabilidade com quem segue o padrão. Trate extensão como exceção documentada.