1. O problema que a arquitetura resolve
⏱ 6 minutosToda organização que opera sistemas produz dados antes de decidir o que fazer com eles. O primeiro relatório nasce de uma consulta direta ao banco de produção. O segundo nasce de uma planilha que alguém exporta toda segunda-feira. O terceiro nasce de um script que copia tabelas durante a madrugada. Nenhuma dessas decisões é irracional isoladamente: cada uma resolve um problema imediato com o menor esforço disponível naquele momento.
A dificuldade aparece na soma. Após dois anos, a organização possui dezenas de rotas de dados não documentadas, três definições incompatíveis de receita líquida, um banco de produção sobrecarregado por consultas analíticas e nenhum registro de quem depende de quê. Quando um campo muda de nome na origem, ninguém consegue prever quais relatórios param de funcionar. Entende-se por arquitetura de dados o conjunto de decisões, de reversão custosa, que impede esse desfecho.
Arquitetura de dados é a descrição estrutural de como os dados de uma organização são adquiridos, armazenados, transformados, servidos, protegidos e operados, incluindo as decisões que produziram essa estrutura e as consequências aceitas em cada decisão. A norma ISO/IEC/IEEE 42010 estabelece que uma descrição arquitetural existe para atender às preocupações de partes interessadas identificadas; sem essas partes e suas preocupações declaradas, não há critério para julgar a arquitetura como adequada ou inadequada.
Arquitetura como registro de justificativas
Um diagrama de caixas conectadas por setas comunica topologia; a arquitetura compreende também as justificativas que produziram essa topologia. Duas organizações podem produzir diagramas idênticos por motivos opostos: uma escolheu processamento em lote porque a decisão de negócio ocorre uma vez ao dia; a outra escolheu o mesmo porque não dispunha de equipe para operar processamento contínuo. As topologias coincidem, as arquiteturas divergem, e apenas o registro das justificativas permite distinguir uma da outra quando a restrição mudar.
Essa distinção tem consequência prática direta. Quando um novo integrante propõe migrar a plataforma para processamento em tempo real, a resposta adequada é: a decisão de operar em lote foi registrada no ADR-ARQ-02, cuja premissa era a inexistência de decisão de negócio, além do antifraude, sensível a latência inferior a quinze minutos; se essa premissa deixou de valer, a decisão deve ser reavaliada. Com a decisão documentada, a discussão passa a examinar a validade da premissa registrada.
O caso que acompanha este material
A Rede Aurora é uma rede varejista fictícia utilizada como fio condutor de todas as seções deste material. Os dados abaixo são sintetizados para fins didáticos e não representam organização real.
- Operação: 180 lojas físicas e um comércio eletrônico, em quatro estados.
- Volume: aproximadamente 2,4 milhões de itens de cupom por dia, com pico de 6 milhões em datas promocionais.
- Sistemas de origem: ponto de venda (PDV), plataforma de comércio eletrônico, sistema de gestão empresarial, programa de fidelidade e uma planilha mantida pela área de compras.
- Consumidores: uma equipe de inteligência de negócio que produz relatórios diários, dois cientistas de dados que treinam modelos de previsão de demanda, e a diretoria comercial.
- Restrição declarada: a decisão de reposição de estoque ocorre uma vez por dia, às 7h; a decisão de bloqueio de fraude em pagamento ocorre em segundos.
Cada seção deste material aplica seu conteúdo a esse caso. Ao final, a Seção 10 consolida a arquitetura completa da Rede Aurora, com as decisões justificadas.
Como percorrer este material
O material está organizado em quatorze seções, com tempo estimado indicado ao início de cada uma e no sumário lateral. A leitura integral demanda aproximadamente noventa minutos. O encontro presencial desta aula é integralmente dedicado à Ponderada em Sala, atividade avaliativa individual, manuscrita e sem consulta, que pede a reconstrução do cubo do próprio grupo e do caminho das bases de origem do parceiro até ele. Este material constitui o estudo preparatório dessa atividade. As seções 2 a 7 tratam dos seis temas conceituais da arquitetura de dados e encerram-se com checklist de aplicação; as seções 8 a 11 aprofundam o tema; a Seção 12 propõe um exercício preparatório de autoverificação, não entregue; as seções 13 e 14 reúnem glossário e referências.
Quatro exercícios resolvidos estão distribuídos ao longo do texto. A resolução permanece recolhida por padrão, e recomenda-se formular a própria resposta antes de expandi-la, pois o exercício perde a função diagnóstica quando a resolução é lida primeiro. Cada diagrama introduz distinção que o texto não enuncia integralmente, e a leitura que os ignora perde parte do argumento.
Onde esta aula se encaixa no módulo
As aulas anteriores trataram da modelagem dimensional: grão, tabelas de fato, dimensões, esquemas estrela e floco de neve. Modelagem responde à pergunta como os dados devem ser organizados para serem consultados. Arquitetura responde a uma pergunta anterior e mais ampla: por onde os dados entram, onde repousam, quem os transforma, quem os consome, quem responde quando falham e o que acontece quando a estrutura precisa mudar. Um modelo dimensional correto, inserido em arquitetura sem contratos, responsáveis e plano de recuperação, continua sujeito a produzir relatórios incorretos.
Escolher o padrão antes de conhecer a restrição. A adoção de tecnologia motivada por difusão de mercado, sem exigência declarada que a justifique, produz custo de operação sem ganho de decisão.
2. Requisitos arquiteturais: comece pelas decisões
⏱ 9 minutosArquitetura responde a restrições. Enquanto as restrições permanecerem enunciadas em termos qualitativos — muitos dados, precisa ser rápido, não pode cair —, não existe critério para escolher entre alternativas, porque qualquer alternativa as satisfaz retoricamente. O primeiro trabalho arquitetural consiste em converter adjetivos em números.
As oito dimensões de restrição
| Dimensão | Pergunta que a torna mensurável | Exemplo na Rede Aurora |
|---|---|---|
| Volume | Quantos registros por dia, com que tamanho médio, e qual a taxa de crescimento anual? | 2,4 milhões de itens/dia; pico de 6 milhões; crescimento de 18% ao ano. |
| Velocidade | Qual o intervalo máximo aceitável entre o fato ocorrer e o dado ficar disponível? | 15 minutos após o fechamento do caixa para o BI; 2 segundos para antifraude. |
| Variedade | Quantos formatos distintos e quantos sistemas de origem, com que estabilidade de esquema? | Cinco origens; uma delas é planilha com esquema instável. |
| Criticidade | Que decisão de negócio para se o dado ficar indisponível, e qual o prejuízo por hora? | A reposição diária para; a fraude deixa de ser bloqueada em tempo real. |
| Retenção | Por quanto tempo cada classe de dado deve ser mantida, e o que ocorre depois? | Cupom fiscal por 5 anos por exigência fiscal; dado pessoal do fidelidade por 2 anos. |
| Conformidade | Que dados são pessoais ou sensíveis, e que base legal autoriza cada uso? | CPF e histórico de compra do fidelidade, sob a LGPD. |
| Orçamento | Qual o custo mensal aceitável de infraestrutura, licenças e pessoal de operação? | Limite declarado de custo mensal e uma pessoa dedicada à operação. |
| Consumidores | Quem consulta, com que ferramenta, com que competência técnica e com que frequência? | BI com ferramenta visual; ciência de dados com Python e acesso a dado granular. |
A última dimensão é a mais frequentemente omitida e a que mais determina o desenho. Uma plataforma cujos consumidores são analistas de negócio com ferramenta visual exige uma camada semântica estável, com métricas nomeadas e pré-agregadas. Uma plataforma cujos consumidores são cientistas de dados exige acesso ao dado granular, inclusive ao registro bruto anterior à limpeza, porque a limpeza descarta exatamente os desvios que interessam ao modelo. A Rede Aurora possui os dois perfis, e essa coexistência justificará o padrão adotado na Seção 4.
Do requisito à decisão: o funil arquitetural
Requisitos não funcionais verificáveis
Um requisito não funcional exige três componentes para ser verificável: uma métrica, um limite numérico e um instrumento de medição. A ausência de qualquer um deles impede a construção de um cenário de aceite, e um requisito sem cenário de aceite não é passível de reprovação e, por isso, não restringe a implementação.
Não há métrica, limite nem instrumento. Qualquer implementação pode ser declarada conforme.
Exercício resolvido 2.1 — converter enunciado em restrição
A diretoria da Rede Aurora afirma: “precisamos saber as vendas em tempo real”. Converta esse enunciado em restrição verificável, ou demonstre que ele não se sustenta.
Ver resolução
O procedimento consiste em perguntar qual decisão muda em função da latência. Ao investigar, verifica-se que a diretoria consulta o painel de vendas uma vez ao dia, pela manhã, e que a decisão associada — ajuste de reposição — é executada às 7h, uma vez por dia.
A latência exigida pela decisão é, portanto, da ordem de horas. O enunciado original não se sustenta como requisito de tempo real. A restrição verificável correspondente é: dado de venda do dia anterior disponível até as 6h30, no percentil 95 dos dias úteis.
Observe-se que existe, na mesma organização, uma decisão genuinamente sensível a segundos: o bloqueio de transação fraudulenta. A conclusão correta é que a baixa latência é exigida por um caso de uso específico, e o custo de operá-la deve incidir apenas sobre esse caso, preservando o restante da plataforma.
- Escreva as restrições em números: volume, latência, retenção, orçamento.
- Identifique a decisão de negócio que a plataforma precisa sustentar.
- Descarte explicitamente ao menos uma alternativa, com o motivo registrado.
3. Camadas e responsabilidades
⏱ 11 minutosA estruturação em camadas é o mecanismo pelo qual uma plataforma de dados isola mudanças. Cada camada recebe um contrato de entrada, um contrato de saída, um responsável nomeado e uma política de qualidade declarada. Quando uma origem altera o nome de um campo, a mudança é absorvida na fronteira de ingestão e não se propaga até o relatório da diretoria — desde que as camadas tenham responsabilidades distintas.
As cinco camadas canônicas
A nomenclatura bronze, prata e ouro, difundida por plataformas de lakehouse, corresponde às camadas de bruto, tratado e serviço. A escolha do vocabulário é indiferente; o que importa é a existência de contratos distintos. Uma organização que possui três esquemas de banco chamados bronze, silver e gold contendo as mesmas colunas, com as mesmas regras e o mesmo responsável, possui, na prática, uma camada e duas cópias, com o custo de armazenamento triplicado e nenhum ganho de isolamento.
Por que a camada bruta deve ser imutável
A camada de armazenamento bruto guarda a cópia fiel do que a origem entregou, sem correção, sem tipagem e sem descarte. O custo de armazenamento dessa cópia justifica-se no primeiro incidente de regra incorreta. Quando se descobre, três meses após a implantação, que a regra de conversão de moeda estava incorreta, a existência do dado bruto permite reprocessar todo o histórico com a regra corrigida. Sua ausência torna o erro permanente, porque a informação original foi destruída no momento da transformação. A imutabilidade admite uma exceção legal: o pedido de eliminação de dados pessoais por titular, previsto na LGPD, que a Seção 6 trata por descarte criptográfico da chave do titular.
A imutabilidade da camada bruta implementa, no domínio de dados, o mesmo princípio que o log de transações implementa em bancos de dados e que o histórico de commits implementa em sistemas de controle de versão: preservar a sequência de fatos permite reconstruir qualquer estado derivado. O estado atual é uma projeção do histórico; se apenas a projeção é armazenada, toda revisão da regra de projeção torna-se irrealizável.
O contrato de dados na prática
Contrato de dados é a especificação, acordada entre produtor e consumidor, do formato, da semântica e das garantias de qualidade de um conjunto de dados. Sua função é converter uma expectativa implícita em obrigação verificável: sem contrato, o produtor não sabe o que pode alterar sem causar dano, e o consumidor não sabe com o que pode contar.
O contrato deve ser artefato versionado no repositório. O exemplo abaixo especifica a saída da camada tratada para a tabela de itens de venda da Rede Aurora.
# contratos/silver.item_venda.yaml nome: silver.item_venda versao: "2.1.0" dono: engenharia-de-dados origem: bronze.cupom_item particionamento: data_particao # diário; habilita reprocessamento idempotente chave_unica: [id_cupom, sequencia_item] campos: - nome: id_cupom tipo: string obrigatorio: true - nome: valor_total_com_imposto tipo: decimal(12,2) obrigatorio: true semantica: "valor do item incluindo tributos incidentes" - nome: id_cliente_substituto tipo: string obrigatorio: false classificacao: pseudonimizado # CPF não trafega a partir desta camada garantias: - regra: unicidade(chave_unica) acao_se_violada: rejeitar_carga - regra: valor_total_com_imposto >= 0 acao_se_violada: rejeitar_carga - regra: completude(id_cupom) == 100% acao_se_violada: rejeitar_carga - regra: contagem_diaria >= 0.8 * media_movel_7d acao_se_violada: alertar_dono # queda abrupta indica falha na origem evolucao: politica: retrocompatibilidade_obrigatoria prazo_de_transicao_dias: 30
Três elementos desse contrato merecem destaque. O campo semantica registra o significado por extenso, o que torna detectável a alteração descrita ao final da Seção 7 — mudar o significado mantendo nome e tipo. O par regra e acao_se_violada distingue as violações que interrompem a carga daquelas que apenas notificam: rejeitar a carga por queda de volume seria excessivo, pois um feriado produz legitimamente menos cupons, mas ignorá-la impediria detectar a falha silenciosa de uma origem. E o bloco evolucao declara antecipadamente a política, de modo que a admissibilidade de uma mudança seja discutida antes que ela ocorra.
A camada de serviço e o vocabulário do negócio
A camada de serviço é onde reside o modelo dimensional estudado nas aulas anteriores, e é também onde as métricas recebem definição única. Se receita líquida for calculada dentro de cada relatório, existirão tantas definições quantos forem os relatórios, e a divergência entre elas será descoberta em reunião de diretoria. Definir a métrica uma vez, na camada de serviço, com versionamento, é o que permite responder à pergunta por que os dois números diferem antes que ela seja feita.
A área de compras mantém uma planilha com o custo negociado por fornecedor. Trata-se de origem de esquema instável: colunas são renomeadas sem aviso e linhas de totalização aparecem no meio dos dados.
Decisão adotada: a planilha é ingerida sem transformação para a camada bruta, preservando inclusive as linhas de totalização. A remoção dessas linhas e a normalização dos nomes de coluna ocorrem na transição para a camada tratada, onde um teste de validade rejeita a carga caso o número de colunas divirja do esquema declarado. A área de compras é nomeada dona do contrato de entrada; a engenharia de dados é dona do contrato de saída da camada tratada.
Consequência aceita: quando a planilha muda de formato, a carga falha de maneira visível na fronteira, em vez de propagar valores incorretos silenciosamente até o relatório de margem.
Exercício resolvido 3.1 — diagnosticar camadas falsas
Uma equipe apresenta a seguinte arquitetura: raw.vendas, stg.vendas e dw.vendas, todas com as mesmas 42 colunas, carregadas pela mesma rotina, mantidas pela mesma pessoa. Qual o diagnóstico?
Ver resolução
Não existem três camadas. A identidade de colunas indica ausência de transformação entre os estágios; a identidade de rotina indica ausência de contratos independentes; a identidade de responsável indica ausência de fronteira organizacional. O arranjo constitui uma camada única replicada três vezes.
O custo é imediato: triplica-se o armazenamento e o tempo de carga, e mantém-se a propagação direta de qualquer alteração da origem até o consumo. A correção consiste em definir o que cada transição deve garantir — por exemplo, tipagem e deduplicação entre raw e stg, e conformação dimensional entre stg e dw — e em declarar o teste que verifica cada garantia. Se nenhuma garantia distinta puder ser enunciada para uma transição, a camada correspondente deve ser eliminada.
Camadas que só diferem no nome do esquema. Sem contrato distinto, trata-se de uma camada única com três cópias.
- Dê a cada camada um contrato de entrada e de saída.
- Nomeie o responsável por qualidade e por incidente.
- Proíba salto de camada: o consumo não lê o dado bruto.
4. Padrões de plataforma
⏱ 8 minutosOs padrões descritos a seguir são respostas históricas a restrições distintas. Nenhum deles é sucessor universal do anterior, ainda que a literatura comercial frequentemente os apresente em ordem cronológica sugerindo progresso. O critério de escolha é a correspondência entre o que o padrão resolve e o que a organização declarou como restrição.
Comparação estruturada
| Padrão | Restrição que resolve | Custo que introduz | Pressuposto organizacional |
|---|---|---|---|
| Data warehouse | Consulta analítica rápida e consistente sobre dados estruturados, com métricas reconciliadas. | Esquema definido antes da carga; dado não estruturado fica fora; alteração de modelo é lenta. | Requisitos analíticos relativamente estáveis e conhecidos. |
| Data lake | Armazenamento barato de grande volume e de qualquer formato, com esquema aplicado na leitura. | Ausência de garantias transacionais e de esquema; degrada-se em repositório inexplorável sem catálogo. | Equipe capaz de impor governança sem que a tecnologia a imponha. |
| Lakehouse | Coexistência de consumo analítico estruturado e acesso granular para ciência de dados sobre o mesmo armazenamento. | Dependência de catálogo, de formato tabular transacional e de rotina de compactação de arquivos. | Equipe de engenharia capaz de operar o catálogo e a manutenção física. |
| Hub-and-spoke | Necessidade de repositório central conciliado com áreas que exigem autonomia de modelagem. | Risco de divergência entre o centro e as pontas; exige conformação de dimensões. | Autoridade central reconhecida para arbitrar definições conflitantes. |
| Data mesh | Gargalo de uma equipe central única atendendo muitos domínios com conhecimento que ela não possui. | Duplicação de esforço; exige plataforma de autoatendimento e governança federada. | Times de domínio com autonomia real, orçamento próprio e capacidade de operar seus dados. |
A coluna determinante é a última. Data mesh é, antes de uma decisão tecnológica, uma decisão de estrutura organizacional: transfere a responsabilidade pelo dado aos times que o produzem. Uma organização que adota a topologia sem transferir a responsabilidade obtém os custos da descentralização somados aos gargalos da centralização.
Topologias comparadas
O custo de governança e por que ele é subestimado
A comparação entre padrões costuma restringir-se ao custo de infraestrutura, que é visível, mensurável e cotado por fornecedores. O custo de governança é invisível na proposta e dominante na operação, pois consiste majoritariamente em tempo de pessoas. Ao avaliar um padrão candidato, devem ser estimados ao menos cinco itens recorrentes.
- Catalogação. Registro e manutenção da descrição de cada conjunto de dados publicado, incluindo significado dos campos e responsável.
- Manutenção física. Compactação de arquivos, reorganização de partições e expurgo de versões antigas — atividades que não produzem valor visível e cuja omissão degrada a consulta progressivamente.
- Revisão de acessos. Verificação periódica de quem detém quais privilégios, com revogação do que deixou de ser necessário.
- Conciliação de definições. Arbitragem entre áreas que calculam a mesma métrica de modos distintos, atividade tanto mais frequente quanto mais descentralizado for o padrão.
- Resposta a incidentes. Tempo dedicado à investigação e correção de falhas de carga e de qualidade, proporcional ao número de componentes independentes.
A relevância dessa estimativa aparece na comparação entre padrões centralizados e distribuídos. A distribuição reduz o gargalo da equipe central e aumenta os itens de conciliação e de resposta a incidentes, porque multiplica o número de produtores independentes. Uma organização com uma única equipe de dados que adota topologia distribuída mantém o gargalo e acrescenta custo de coordenação entre produtores independentes que ela não possui.
O princípio da simplicidade suficiente
Entre padrões que atendem às restrições declaradas, deve-se adotar o mais simples. A justificativa é operacional: cada elemento adicional da plataforma consome capacidade de operação, e a capacidade de operação é o recurso mais escasso em equipes pequenas. Uma arquitetura que a equipe não consegue operar em regime de incidente é, do ponto de vista da disponibilidade, pior do que uma arquitetura menos sofisticada que ela domina.
Alternativas consideradas. (A) Data warehouse fechado; (B) data lake puro; (C) lakehouse; (D) data mesh.
Descarte de A: a exigência de esquema fixo antes da carga é incompatível com a planilha de compras, de esquema instável, e com o acesso granular exigido pelos cientistas de dados.
Descarte de B: a ausência de garantias transacionais impede o reprocessamento seguro de partições, exigido pelo cenário de aceite da recuperação.
Descarte de D: a organização possui uma única equipe de dados, sem times de domínio com orçamento próprio; o pressuposto organizacional do padrão não se verifica.
Escolha: C, lakehouse. Atende à coexistência dos dois perfis de consumo sobre o mesmo armazenamento. Consequência aceita: dependência de catálogo e de rotina periódica de compactação de arquivos pequenos, cuja responsabilidade deve ser atribuída nominalmente.
Adotar data mesh sem times de domínio com autonomia real. O padrão pressupõe estrutura organizacional compatível, além da tecnologia.
- Liste a restrição concreta que cada padrão candidato resolve.
- Estime o custo de governança, não apenas o de infraestrutura.
- Prefira o padrão mais simples que atenda às restrições.
5. Batch e streaming
⏱ 11 minutosO processamento em lote agrupa registros por intervalo de tempo e os processa em conjunto. O processamento contínuo trata cada evento à medida que ocorre. A diferença aparente é de latência; a diferença substantiva é de complexidade operacional, e é esta que determina o custo total.
O que cada modelo simplifica e o que complica
| Aspecto | Lote | Contínuo |
|---|---|---|
| Latência típica | De minutos a horas. | De milissegundos a segundos. |
| Correção de erro | Reexecuta-se a janela inteira; o estado final é determinístico. | Exige reprocessamento do fluxo com controle de posição e tratamento de estado parcial. |
| Dado atrasado | Entra na próxima execução sem tratamento especial. | Exige política explícita de janela e de tolerância a atraso. |
| Custo de infraestrutura | Recursos alocados apenas durante a execução. | Recursos permanentemente alocados, mesmo em períodos ociosos. |
| Custo de operação | Falha é detectada e corrigida na janela seguinte. | Falha exige resposta imediata; exige plantão e observabilidade contínua. |
| Depuração | Entrada reproduzível: a mesma janela pode ser reexecutada. | Estado efêmero: reproduzir a condição exige registro do fluxo. |
O teste da decisão
A pergunta que determina a escolha é qual decisão muda por saber o dado mais cedo. Se nenhuma ação humana ou automática ocorre entre a chegada do dado às 7h e a sua chegada às 7h15, os quinze minutos de diferença não possuem valor econômico, e o custo de obtê-los é integralmente desperdiçado.
Como dimensionar a janela do lote
Definida a opção pelo processamento em lote, resta escolher a frequência de execução. A escolha é frequentemente arbitrada por hábito — toda madrugada —, quando decorre de três restrições verificáveis.
A primeira é o momento da decisão. Se a reposição de estoque é decidida às 7h, a carga deve concluir antes desse horário, com margem suficiente para uma reexecução em caso de falha. Uma carga que termina às 6h55 e falha uma vez por mês descumpre o requisito em todos os meses.
A segunda é a disponibilidade da origem. O sistema de ponto de venda encerra o movimento das lojas em horários distintos, e extrair antes do fechamento da última loja produz dados incompletos que serão silenciosamente tratados como completos. A janela precisa iniciar após a garantia de fechamento, não após o horário nominal.
A terceira é a duração da execução somada à margem de recuperação. Se a carga leva 40 minutos e o RTO declarado é de 4 horas, iniciar às 3h oferece margem para duas tentativas antes das 7h. Iniciar às 6h não oferece nenhuma, e o RTO declarado torna-se inatingível por construção — independentemente da qualidade da implementação.
O horário de início da janela deve satisfazer: início ≥ fechamento da origem e início + (duração × tentativas previstas) ≤ momento da decisão. Quando as duas condições são incompatíveis, a restrição precisa ser renegociada explicitamente — antecipar o fechamento da origem, reduzir a duração ou postergar a decisão. Nenhuma das três é escolha da engenharia isoladamente.
Adoção por caso de uso
A conclusão prática é que lote e processamento contínuo coexistem na mesma arquitetura. A escolha do regime de processamento é feita para cada caso de uso, de modo que a mesma plataforma pode abrigar os dois. A Rede Aurora opera o antifraude em fluxo contínuo, com uma janela de estado de poucos minutos, e mantém todo o restante em lote horário e diário. O evento de pagamento é gravado no barramento uma única vez e consumido por dois caminhos independentes: o consumidor contínuo, que decide o bloqueio, e o consumidor em lote, que alimenta a camada bruta.
A arquitetura lambda mantém dois caminhos de processamento sobre os mesmos dados: um caminho em lote, que produz o resultado correto com atraso, e um caminho contínuo, que produz resultado aproximado imediatamente; o consumo combina ambos. Seu custo característico é a manutenção de duas implementações da mesma regra de negócio, com risco permanente de divergência entre elas.
A arquitetura kappa elimina o caminho em lote e trata o histórico como reprodução do fluxo desde o início, mantendo uma única implementação. Exige que o barramento retenha o histórico por período suficiente e que o processamento seja capaz de reprocessar em velocidade muito superior à de produção. A escolha entre ambas depende de a organização conseguir sustentar duas implementações ou um barramento com retenção longa.
Exercício resolvido 5.1 — justificar ou recusar a migração
A área de tecnologia propõe migrar toda a ingestão da Rede Aurora para processamento contínuo, argumentando que a plataforma se tornará tempo real. Elabore a resposta arquitetural.
Ver resolução
A resposta deve identificar, para cada consumidor, a decisão sustentada e a latência que ela exige. Para o relatório fiscal, a decisão é diária, uma vez ao dia; para o painel de reposição, diária às 7h; para o antifraude, imediata.
Apenas o terceiro consumidor exige latência de segundos, e ele já opera em fluxo contínuo. A migração dos dois primeiros elevaria o custo de infraestrutura, por manter recursos permanentemente alocados, e o custo de operação, por exigir resposta imediata a falhas que hoje são corrigidas na janela seguinte — sem alterar nenhuma decisão de negócio.
A proposta deve, portanto, ser recusada em sua forma geral. A formulação aceitável seria: migrar para processamento contínuo os casos de uso cuja decisão associada ocorra em intervalo inferior a X, com X derivado das restrições declaradas na Seção 2. Registra-se a recusa em ADR, com a premissa explícita, de modo que a decisão possa ser reaberta caso surja um caso de uso sensível a latência.
Migrar toda a plataforma para processamento contínuo por uma latência que nenhum consumidor utiliza. A complexidade operacional aumenta sem ganho de decisão.
- Pergunte se alguma decisão muda por saber o dado em segundos.
- Compare o custo operacional, não apenas o de processamento.
- Adote processamento contínuo por caso de uso, não para a plataforma inteira.
6. Governança e segurança
⏱ 10 minutosGovernança de dados é o conjunto de processos que estabelece quem decide o quê a respeito dos dados, sob quais regras e com qual responsabilidade. O DAMA-DMBOK a posiciona no centro das demais funções de gestão de dados, e não como atividade posterior, porque cada função — qualidade, segurança, metadados, arquitetura — depende de uma atribuição de autoridade previamente definida.
Os componentes exigidos desde o desenho
| Componente | Função | Consequência da ausência |
|---|---|---|
| Catálogo | Registrar quais conjuntos de dados existem, o que significam e onde residem. | Recriação de conjuntos já existentes e consultas sobre tabelas obsoletas. |
| Propriedade | Nomear quem responde pela qualidade e pelos incidentes de cada conjunto. | Incidente sem responsável designado permanece aberto indefinidamente. |
| Classificação | Rotular o dado quanto à sensibilidade antes de qualquer movimentação. | Dado pessoal replicado para ambientes sem controle de acesso adequado. |
| Linhagem | Registrar a origem de cada campo e as transformações aplicadas. | Impossibilidade de avaliar o impacto de uma alteração na origem. |
| Retenção | Definir por quanto tempo cada classe é mantida e como é descartada. | Acúmulo indefinido, com custo crescente e exposição desnecessária. |
| Mascaramento | Reduzir a identificabilidade em ambientes que não exigem o dado original. | Base de desenvolvimento contendo dados pessoais reais. |
| Controle de acesso | Conceder o privilégio mínimo necessário, por perfil e por finalidade. | Acesso amplo concedido por conveniência e nunca revisto. |
| Resposta a incidente | Definir o procedimento de detecção, contenção, notificação e correção. | Improvisação sob pressão, com prazos legais descumpridos. |
Linhagem: por que ela é condição de avaliação de impacto
Linhagem é o registro verificável do percurso de um dado desde a origem até o consumo, incluindo as transformações intermediárias. Sua utilidade concentra-se em dois momentos. No primeiro, quando uma origem anuncia alteração de esquema, a linhagem responde a quais tabelas e relatórios essa alteração atinge. No segundo, quando um número é contestado, a linhagem permite percorrer o caminho inverso até o registro de origem e identificar em que transformação a divergência foi introduzida.
cupom_item")] --> BR["bronze.cupom_item
cópia fiel"] ERP[("ERP
produto")] --> BP["bronze.produto"] PL[("Planilha
custo negociado")] --> BC["bronze.custo"] BR --> SI["silver.item_venda
tipado, deduplicado"] BP --> SP["silver.produto"] BC --> SC["silver.custo"] SI --> FV["gold.fato_venda"] SP --> DP["gold.dim_produto"] SC --> FV FV --> M1["métrica
receita_liquida"] FV --> M2["métrica
margem_bruta"] DP --> M2 M1 --> BI["Painel comercial"] M2 --> BI SI --> DS["Modelo de previsão
de demanda"] classDef org fill:#fee2e2,stroke:#dc2626,color:#7f1d1d; classDef brz fill:#ffedd5,stroke:#f59e0b,color:#7c2d12; classDef slv fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a; classDef gld fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95; classDef con fill:#dcfce7,stroke:#22c55e,color:#14532d; class PDV,ERP,PL org; class BR,BP,BC brz; class SI,SP,SC slv; class FV,DP,M1,M2 gld; class BI,DS con;
O grafo acima permite responder, sem inspeção manual de código, a duas perguntas de operação. Primeira: se a planilha de custo deixar de ser entregue, quais consumidores são afetados? O caminho indica que margem_bruta e o painel comercial degradam, enquanto o modelo de previsão de demanda permanece íntegro, pois deriva de silver.item_venda. Segunda: o modelo de previsão consome a camada tratada e não a de serviço, o que constitui exceção deliberada à regra de proibição de salto de camada — deve, portanto, estar registrada em ADR, com a justificativa de que o modelo exige granularidade anterior à agregação dimensional.
Proteção de dados pessoais
A Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018) impõe à arquitetura exigências que não podem ser satisfeitas posteriormente sem reconstrução. Entre elas, a finalidade declarada para cada tratamento, a minimização — coletar e reter apenas o necessário à finalidade —, e a capacidade de localizar e eliminar os dados de um titular mediante solicitação. Esta última exigência é decisiva: uma plataforma que replica identificadores pessoais por dezenas de tabelas derivadas, sem linhagem, não consegue atender a um pedido de eliminação sem varredura manual.
Classificação. O CPF e o histórico individual de compra do programa de fidelidade são classificados como dados pessoais; o cupom fiscal sem vínculo com titular é classificado como dado operacional.
Decisão de desenho. Na ingestão, antes da gravação na camada bruta, o CPF e os demais campos pessoais são cifrados com uma chave própria de cada titular, mantida em cofre de chaves com acesso restrito e registro de consulta. Na transição da camada bruta para a tratada, o CPF é substituído por um identificador substituto, e a correspondência entre ambos é mantida em uma única tabela, também restrita. As tabelas derivadas passam a referenciar apenas o identificador substituto.
Consequência. A eliminação dos dados de um titular exige o descarte da chave do titular (crypto-shredding), que torna ilegíveis as cópias cifradas preservadas na camada bruta sem regravar seus arquivos, a remoção da linha na tabela de correspondência e a reexecução das rotinas de agregação afetadas, em vez de varredura por dezenas de tabelas. Essa é a exceção legal à imutabilidade da camada bruta: o arquivo permanece inalterado, mas o dado pessoal nele contido deixa de ser recuperável. O ambiente de desenvolvimento recebe apenas o identificador substituto, o que elimina a presença de dado pessoal fora de produção.
Exercício resolvido 6.1 — atender a um pedido de eliminação
Um cliente do programa de fidelidade solicita a eliminação de seus dados pessoais. Descreva o que a arquitetura da Rede Aurora precisa oferecer para que o pedido seja atendido, e o que ocorreria em uma plataforma sem essas propriedades.
Ver resolução
São necessárias quatro propriedades. A classificação identifica quais conjuntos contêm dados pessoais, evitando varredura exaustiva. A linhagem indica quais tabelas derivadas incorporaram esses dados. A cifragem por titular na ingestão permite eliminar o dado pessoal da camada bruta imutável pelo descarte da chave. A pseudonimização na fronteira concentra a correspondência entre pessoa e identificador em uma única tabela.
Com elas, o procedimento reduz-se a descartar a chave do titular no cofre, remover a linha correspondente na tabela de correspondência e reexecutar as agregações afetadas, indicadas pela linhagem. Os registros de venda permanecem, agora definitivamente desvinculados do titular, o que preserva a obrigação fiscal de retenção por cinco anos sem manter o vínculo pessoal.
Sem essas propriedades, seria necessário inspecionar o conteúdo de todas as tabelas em busca de identificadores, sem garantia de completude, e o resultado não seria demonstrável perante uma fiscalização. Observe-se que a exigência de eliminação convive com a de retenção fiscal: a arquitetura precisa separar o dado da transação do vínculo com a pessoa, pois eliminar a transação violaria outra obrigação legal.
Governança tratada como fase posterior. Catalogar mil tabelas já existentes custa mais do que catalogar a primeira no momento de sua criação, e a classificação retroativa exige inspeção de conteúdo que a classificação prévia dispensa.
- Classifique os dados sensíveis antes de mover qualquer byte.
- Garanta linhagem verificável da origem ao consumo.
- Defina retenção e descarte, não apenas acumulação.
7. Resiliência e evolução
⏱ 13 minutosPlataformas de dados estão sujeitas a falhas: origens ficam indisponíveis, cargas são interrompidas pela metade, registros chegam duplicados, esquemas mudam sem aviso. A qualidade arquitetural mede-se pela previsibilidade do comportamento quando as falhas ocorrem.
Idempotência como pré-condição do reprocessamento
Uma operação é idempotente quando sua aplicação repetida produz o mesmo resultado de uma única aplicação. Em ingestão de dados, isso significa que reexecutar a carga do dia 12 deve deixar o sistema no mesmo estado em que ficaria se ela tivesse executado uma única vez com sucesso. A propriedade não é automática: uma rotina que insere registros incondicionalmente duplica-os a cada reexecução.
INSERT INTO fato_venda SELECT * FROM staging;
A reexecução após falha parcial duplica os registros já inseridos. O total de vendas passa a divergir da origem, e a correção exige identificar manualmente o que foi inserido duas vezes.
DELETE FROM fato_venda WHERE data_particao = '2026-08-12'; INSERT INTO fato_venda SELECT * FROM staging WHERE data_particao = '2026-08-12';
A substituição da partição inteira produz sempre o mesmo estado final, independentemente do número de execuções.
A estratégia de substituição de partição é a mais simples e deve ser preferida quando a janela de reprocessamento é delimitável por data. Quando não é — por exemplo, em correções que afetam registros arbitrários —, a alternativa é a operação de mesclagem com chave de negócio declarada, que atualiza o registro existente em vez de inserir um novo. Em ambos os casos, a condição necessária é a existência de uma chave que identifique inequivocamente o registro na origem.
A operação de mesclagem exige a declaração explícita da chave de negócio. O exemplo a seguir aplica-se à camada tratada da Rede Aurora e é idempotente por construção: executá-la duas vezes com a mesma entrada produz o mesmo conjunto de registros e valores, com exceção da coluna de auditoria atualizado_em.
-- Carga idempotente por mesclagem, com chave de negócio declarada. -- Reexecutar esta instrução não duplica registros; apenas atualizado_em muda. MERGE INTO silver.item_venda AS destino USING ( -- A deduplicação na origem é obrigatória: MERGE falha ou produz -- resultado não determinístico se a fonte trouxer a chave repetida. -- QUALIFY não é ANSI; em PostgreSQL, filtrar ordem = 1 em subconsulta. SELECT id_cupom, sequencia_item, valor_total_com_imposto, data_particao, ROW_NUMBER() OVER ( PARTITION BY id_cupom, sequencia_item ORDER BY extraido_em DESC ) AS ordem FROM bronze.cupom_item WHERE data_particao = '2026-08-12' QUALIFY ordem = 1 ) AS origem ON destino.id_cupom = origem.id_cupom AND destino.sequencia_item = origem.sequencia_item WHEN MATCHED THEN UPDATE SET valor_total_com_imposto = origem.valor_total_com_imposto, atualizado_em = CURRENT_TIMESTAMP WHEN NOT MATCHED THEN INSERT (id_cupom, sequencia_item, valor_total_com_imposto, data_particao) VALUES (origem.id_cupom, origem.sequencia_item, origem.valor_total_com_imposto, origem.data_particao);
Duas condições sustentam a idempotência dessa instrução. A primeira é a existência de uma chave que identifique o registro na origem — sem ela, não há critério para distinguir atualização de inserção, e a operação degenera em acréscimo. A segunda é a deduplicação prévia da fonte: quando a mesma chave aparece duas vezes no conjunto de origem, o padrão SQL exige erro de cardinalidade, e os mecanismos que não o aplicam produzem resultado dependente da ordem de leitura, o que anula a propriedade que se pretendia obter.
A idempotência deve ser garantida antes de habilitar qualquer mecanismo de reprocessamento automático. Um mecanismo de nova tentativa aplicado sobre uma rotina não idempotente converte uma falha transitória em corrupção de dados, e a corrupção é descoberta muito depois, quando o número já foi utilizado em decisão.
Fila de mensagens não processáveis
Registros que falham repetidamente no processamento não devem interromper o fluxo nem ser descartados. O destino adequado é uma fila de mensagens não processáveis, na qual permanecem íntegros, com o registro do erro que os impediu de prosseguir, disponíveis para inspeção e reprocessamento após a correção. Descartá-los produz perda silenciosa; mantê-los na fila principal produz bloqueio indefinido do fluxo.
RPO e RTO: dois números distintos
O objetivo de ponto de recuperação (RPO) declara quanto dado a organização aceita perder, medido em tempo: um RPO de uma hora significa que, após um incidente, admite-se a perda de até uma hora de dados anteriores à falha. O objetivo de tempo de recuperação (RTO) declara em quanto tempo o serviço deve voltar a operar. São grandezas independentes: uma organização pode exigir RPO baixo e tolerar RTO alto, e a recíproca.
Do diagrama decorre uma consequência de projeto frequentemente ignorada: o RPO é função da frequência com que se produzem pontos de recuperação, ao passo que o RTO é função da velocidade do procedimento de restauração. Exigir RPO de cinco minutos implica produzir pontos de recuperação a cada cinco minutos; exigir RTO de trinta minutos implica dispor de um procedimento testado que conclua nesse prazo. São investimentos distintos, e declará-los conjuntamente sem distinguir suas causas leva a dimensionamento incorreto.
Cópia de segurança que nunca foi restaurada. Sem teste de recuperação executado, o RTO declarado é estimativa não verificada, e a primeira verificação ocorrerá durante o incidente.
Evolução de esquema e compatibilidade
Esquemas mudam. A política de evolução deve declarar, antes da primeira mudança, quais alterações são admitidas sem coordenação com os consumidores e quais exigem versionamento e prazo de transição. A distinção baseia-se em dois conceitos: uma alteração é retrocompatível quando consumidores escritos para o esquema antigo continuam operando sobre o novo; é compatível para frente quando consumidores escritos para o esquema novo operam sobre dados no formato antigo.
| Alteração | Retrocompatível | Procedimento exigido |
|---|---|---|
| Acrescentar campo opcional com valor padrão | Sim | Implantação direta; comunicar no catálogo. |
| Acrescentar campo obrigatório sem padrão | Não | Introduzir como opcional, preencher o histórico e só então torná-lo obrigatório. |
| Remover campo | Não | Marcar como obsoleto, verificar a linhagem, notificar consumidores e remover após o prazo declarado. |
| Renomear campo | Não | Equivale a acrescentar e remover: manter ambos durante a transição. |
| Ampliar tipo (inteiro para longo) | Sim | Implantação direta; verificar limites nos consumidores. |
| Restringir tipo (texto para inteiro) | Não | Exige nova versão da tabela e migração coordenada. |
| Alterar semântica sem alterar o tipo | Não | Mudança mais perigosa: não é detectável por validação automática. Exige novo nome de campo. |
A última linha da tabela merece atenção particular. Alterar o significado de valor_total de valor com imposto para valor sem imposto, mantendo nome e tipo, não é detectado por nenhuma validação de esquema. Todos os consumidores continuam operando, e todos passam a produzir números incorretos. A regra decorrente é: quando a semântica muda, o nome deve mudar.
Exercício resolvido 7.1 — projetar o reprocessamento
A carga da camada tratada da Rede Aurora falhou no dia 12, após inserir aproximadamente metade dos registros. Descreva o procedimento de correção e a propriedade arquitetural que o torna possível.
Ver resolução
O procedimento consiste em reexecutar a carga da partição correspondente ao dia 12 a partir da camada bruta, que preserva a cópia fiel da origem. Como a rotina substitui a partição inteira em vez de inserir incrementalmente, o estado final é idêntico ao de uma execução única bem-sucedida, e os registros parcialmente inseridos são eliminados pela própria substituição.
Em seguida, as tabelas da camada de serviço derivadas dessa partição são reconstruídas. A linhagem indica quais são, o que evita reconstruir a camada inteira.
Três propriedades tornam o procedimento possível: a imutabilidade da camada bruta, que preserva a entrada original; a idempotência da rotina, que garante ausência de duplicação; e o particionamento por data, que delimita o escopo do reprocessamento. A ausência de qualquer uma delas converte a correção em intervenção manual de resultado incerto.
- Defina RPO e RTO por domínio e execute o teste de recuperação.
- Garanta idempotência antes de habilitar reprocessamento.
- Estabeleça a política de evolução de esquema e o que quebra compatibilidade.
8. RM-ODP: cinco pontos de vista sobre a mesma arquitetura
⏱ 4 minutosO Reference Model of Open Distributed Processing (RM-ODP), normalizado como ISO/IEC 10746, estabelece que um sistema distribuído deve ser descrito por cinco pontos de vista complementares. Cada ponto de vista responde a preocupações de partes interessadas distintas, e nenhum deles é redutível aos demais. Sua utilidade em arquitetura de dados é diagnóstica: permite identificar qual aspecto do sistema permaneceu não especificado.
| Ponto de vista | Pergunta que responde | Aplicação à plataforma da Rede Aurora |
|---|---|---|
| Empresa | Qual o propósito, o escopo e as políticas que regem o sistema? | Sustentar as decisões de reposição diária e de bloqueio de fraude; políticas de retenção fiscal de cinco anos e de tratamento de dado pessoal sob a LGPD. |
| Informação | Que informação existe, com que significado e sob que regras de integridade? | Modelo dimensional da camada de serviço: fato de venda no grão de item de cupom, dimensões de produto, loja, tempo e cliente; definição única de receita líquida. |
| Computação | Em que componentes o sistema se decompõe e quais interfaces os conectam? | Rotinas de ingestão, transformação, publicação de métricas e consumidores; contratos de saída de cada camada, conforme a Seção 3. |
| Engenharia | Que mecanismos de infraestrutura suportam a distribuição e a comunicação? | Armazenamento de objetos particionado, formato tabular transacional, barramento de eventos para o antifraude, catálogo e orquestrador. |
| Tecnologia | Que produtos concretos implementam os mecanismos escolhidos? | Escolhas específicas de produto, substituíveis sem alterar os demais pontos de vista, desde que os contratos sejam preservados. |
A separação entre os dois últimos pontos de vista é a que produz maior efeito prático. Decisões de engenharia — particionar por data, exigir formato transacional, adotar barramento de eventos — condicionam a arquitetura de modo duradouro. Decisões de tecnologia — qual produto específico implementa o armazenamento — devem ser substituíveis. Uma arquitetura descrita exclusivamente por nomes de produtos não permite avaliar o que se perde ao trocá-los, porque o requisito que cada produto atendia nunca foi enunciado.
Ao revisar uma descrição arquitetural, verifique se os cinco pontos de vista estão contemplados. A omissão mais frequente é a do ponto de vista de empresa: descreve-se com precisão o que o sistema faz e como é construído, sem enunciar qual decisão organizacional ele existe para sustentar. Nessa condição, não há critério para avaliar se a arquitetura é adequada.
9. Ponte com a Aula 1: como este tema vira especificação
⏱ 3 minutosOs conceitos desta aula entram no projeto pelo vocabulário estabelecido na Aula 1. Uma decisão arquitetural orienta a implementação quando se converte em requisito, decisão registrada e cenário verificável. A seguir, a tradução completa do tema para os quatro artefatos do desenvolvimento orientado a especificação.
Requisito funcional
Servir dados de vendas tratados ao BI e ao time de ciência de dados a partir de uma origem única.
Requisito não funcional
Dado disponível na camada de consumo em até 15 minutos após o fechamento da origem; RPO de 1 hora e RTO de 4 horas, comprovados em teste de recuperação.
Decisão registrada
Decisão. Adotar lakehouse com camadas bronze, prata e ouro, em vez de data warehouse fechado.
Contexto. Esquema evolutivo, com origem de esquema instável, e dois perfis de consumo com necessidades distintas: consulta dimensional estável para o BI e acesso granular para ciência de dados.
Alternativa descartada. Data warehouse fechado, por exigir esquema fixo antes da carga e não atender ao acesso granular.
Consequência aceita. Dependência de catálogo e de rotina de compactação; o custo de governança aumenta e exige responsável nominalmente declarado.
Cenário de aceite
# Cenário que deve falhar antes da implementação Funcionalidade: Reprocessamento de partição sem duplicação Cenário: Recuperar carga interrompida da camada prata Dado que a carga da camada prata falhou no dia 12 E que a camada bronze preserva a cópia íntegra da origem Quando eu reprocesso a partição desse dia Então a camada ouro é reconstruída sem duplicar registros E a contagem de itens coincide com a da origem E a linhagem aponta a nova execução
O cenário acima possui a propriedade exigida de um critério de aceite: ele falha antes da implementação. Uma rotina de carga que insere incondicionalmente reprova na asserção de contagem, e a reprovação é automática, dispensando inspeção humana. Um requisito de resiliência enunciado apenas como o sistema deve ser resiliente não produz reprovação alguma e, por consequência, não impõe restrição ao implementador.
10. Estudo de caso integrado: a arquitetura da Rede Aurora
⏱ 9 minutosAs seções anteriores produziram decisões isoladas. Esta seção as consolida em uma descrição arquitetural única, no formato que o exercício preparatório da Seção 12 solicita para o projeto do grupo. O objetivo é demonstrar que cada elemento do diagrama corresponde a uma restrição declarada.
Fluxo ponta a ponta
2,4 M itens/dia"/] ECM[/"Comércio eletrônico"/] ERP[/"ERP — produto e fiscal"/] FID[/"Fidelidade — dado pessoal"/] PLA[/"Planilha de compras
esquema instável"/] end subgraph IN["Ingestão"] BUS{{"Barramento
de eventos"}} LOT["Extração em lote
horária e diária"] end subgraph AR["Armazenamento"] BRZ[("Bronze
bruto imutável
CPF cifrado por titular")] SLV[("Prata
tipado, sem CPF")] GLD[("Ouro
fato e dimensão")] end subgraph CO["Consumo"] ANF["Antifraude
decisão em segundos"] BI["Painel comercial
decisão às 7h"] DS["Previsão de demanda
granularidade fina"] FIS["Relatório fiscal
retenção 5 anos"] end PDV --> BUS PDV --> LOT ECM --> BUS ECM --> LOT ERP --> LOT FID --> LOT PLA --> LOT BUS --> ANF BUS --> BRZ LOT --> BRZ BRZ --> SLV SLV --> GLD GLD --> BI GLD --> FIS SLV -.->|"exceção registrada
em ADR-ARQ-07"| DS classDef org fill:#fee2e2,stroke:#dc2626,color:#7f1d1d; classDef ing fill:#ffedd5,stroke:#f59e0b,color:#7c2d12; classDef arm fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a; classDef con fill:#dcfce7,stroke:#22c55e,color:#14532d; class PDV,ECM,ERP,FID,PLA org; class BUS,LOT ing; class BRZ,SLV,GLD arm; class ANF,BI,DS,FIS con; style OR fill:#ffffff,stroke:#cbd5e1,color:#334155; style IN fill:#ffffff,stroke:#cbd5e1,color:#334155; style AR fill:#ffffff,stroke:#cbd5e1,color:#334155; style CO fill:#ffffff,stroke:#cbd5e1,color:#334155;
Três elementos do diagrama merecem justificativa explícita, pois sem ela pareceriam arbitrários.
O barramento alimenta dois destinos. O evento de pagamento é publicado uma única vez e consumido por dois caminhos independentes: o antifraude, que decide em segundos, e a camada bruta, que preserva o registro para o histórico. A duplicação ocorre no consumo, com publicação única, e permite atender à latência exigida por um caso de uso sem impor processamento contínuo aos demais.
A ciência de dados consome a camada prata. A linha tracejada representa uma exceção deliberada à proibição de salto de camada, estabelecida na Seção 3. A justificativa é que os modelos de previsão exigem granularidade anterior à agregação dimensional, e a camada ouro já a perdeu. Por constituir exceção a uma regra declarada, a decisão exige registro próprio em ADR — caso contrário, tornar-se-ia precedente informal para novos saltos, e a regra deixaria de existir na prática.
A substituição do CPF ocorre na transição para a camada prata. A camada bruta preserva o registro original, com os campos pessoais cifrados por chave de titular, porque a imutabilidade é condição do reprocessamento; o descarte da chave atende ao pedido de eliminação sem regravar a camada. A partir da camada prata, apenas o identificador substituto circula, o que limita a superfície de exposição sem impedir a correção retroativa de regras.
Quadro de decisões registradas
| Identificador | Decisão | Restrição que a motiva | Consequência aceita |
|---|---|---|---|
| ADR-ARQ-01 | Adotar lakehouse com três camadas. | Dois perfis de consumo e uma origem de esquema instável. | Dependência de catálogo e de rotina de compactação, com responsável nomeado. |
| ADR-ARQ-02 | Manter processamento em lote para toda a plataforma, exceto o antifraude. | Somente o bloqueio de fraude possui decisão sensível a segundos. | O painel comercial não reflete vendas do dia corrente antes da janela seguinte. |
| ADR-ARQ-03 | Cifrar o CPF por titular na ingestão e substituí-lo por identificador na transição para a camada prata. | LGPD: minimização e capacidade de eliminação por titular, inclusive na camada bruta imutável. | Dependência de cofre de chaves; consultas que exijam o CPF original dependem de acesso restrito e auditado. |
| ADR-ARQ-04 | Particionar por data e reprocessar por substituição de partição. | RPO de 1 hora e RTO de 4 horas, com reprocessamento sem duplicação. | Correções que não se delimitam por data exigem operação de mesclagem específica. |
| ADR-ARQ-07 | Permitir que a ciência de dados consuma a camada prata. | Modelos exigem granularidade anterior à agregação. | Alterações na camada prata passam a ter dois grupos de consumidores a notificar. |
Riscos declarados e plano de evolução
| Risco | Sinal observável | Resposta planejada |
|---|---|---|
| Planilha de compras muda de formato sem aviso. | Teste de esquema rejeita a carga na fronteira. | Carga falha de modo visível; a área de compras é acionada como dona do contrato de entrada. |
| Acúmulo de arquivos pequenos degrada a consulta. | Tempo de resposta do painel cresce sem aumento de volume. | Rotina periódica de compactação, com responsável e frequência declarados. |
| Crescimento de 18% ao ano ultrapassa o orçamento. | Custo mensal aproxima-se do limite declarado. | Política de retenção diferenciada por camada; dado bruto além de dois anos migra para armazenamento de acesso infrequente. |
| Surgimento de novo caso de uso sensível a latência. | Demanda de decisão em intervalo inferior a 15 minutos. | Reabertura do ADR-ARQ-02; a premissa registrada torna a reavaliação objetiva. |
O quadro de riscos integra a descrição arquitetural. A declaração de cada risco com sinal observável e resposta planejada converte o evento futuro em procedimento conhecido.
11. Catálogo de anti-padrões
⏱ 2 minutosOs arranjos a seguir reaparecem com frequência em plataformas de dados. Cada um deles é localmente razoável e globalmente prejudicial, o que explica sua persistência.
Camadas nominais
Três esquemas com nomes distintos, mesmas colunas, mesma rotina e mesmo responsável. Diagnóstico e correção foram tratados no Exercício 3.1. O sinal característico é a impossibilidade de enunciar qual garantia distinta cada transição oferece.
Consulta analítica sobre o banco de produção
Relatórios executados diretamente sobre a base transacional. O arranjo funciona enquanto o volume é pequeno e falha de modo correlacionado: a consulta pesada degrada o sistema que atende ao cliente, e a degradação ocorre justamente nos períodos de maior movimento, quando ambos são mais exigidos.
Transformação na ferramenta de visualização
Regras de negócio implementadas dentro do painel. A regra passa a existir em um artefato que não é versionado, não é testado e não é reutilizável; quando um segundo painel precisa da mesma métrica, ela é reimplementada, e as duas implementações divergem sem que ninguém seja notificado.
Retenção indefinida por omissão
Ausência de política de descarte. O custo cresce de modo monotônico e a exposição a dados pessoais permanece muito além da finalidade que autorizou a coleta. Em matéria de dado pessoal, a retenção sem finalidade declarada constitui tratamento sem base legal.
Acesso concedido por conveniência
Privilégios amplos atribuídos para resolver um bloqueio pontual e nunca revistos. A revisão periódica de acessos deve constar do desenho, com frequência declarada, pois a tendência natural do conjunto de privilégios é crescer.
Todos os anti-padrões acima decorrem da mesma origem: uma decisão tomada sob pressão de prazo, que resolve o problema imediato e não é registrada como provisória. A ausência de registro impede que ela seja reavaliada quando a pressão cessa, e a solução temporária torna-se estrutura permanente.
12. Exercício preparatório para a Ponderada em Sala
⏱ 2 minutosAplicar a estrutura da Seção 10 a um cubo do projeto do grupo: fluxo ponta a ponta das bases de origem do parceiro até a camada de serviço, decisões registradas em ADR, requisitos não funcionais, riscos e plano de evolução. O exercício prepara as Questões 4 a 8 da Ponderada em Sala, que exige reconstruir essas decisões à mão e sem consulta.
Critérios de autoverificação
- A descrição declara o requisito funcional e ao menos um requisito não funcional mensurável.
- A decisão estrutural está registrada em ADR, com alternativa descartada e consequência aceita.
- Existe ao menos um cenário de aceite que falha antes da implementação.
- Há responsável nomeado, forma de operação e caminho de reprocessamento.
Lista de verificação do exercício
Percorra a lista abaixo aplicando cada item à descrição produzida para o projeto do grupo. Os itens podem ser marcados diretamente nesta página.
- As restrições estão escritas em números, não em adjetivos.
- Está declarada a decisão de negócio que a plataforma sustenta.
- Ao menos uma alternativa foi descartada, com o motivo registrado.
- Cada camada possui contrato de entrada, contrato de saída e responsável nomeado.
- Nenhum consumidor lê a camada bruta, ou a exceção está registrada em ADR.
- A escolha do padrão de plataforma cita a restrição concreta que ele resolve.
- O custo de governança do padrão adotado foi estimado, e não apenas o de infraestrutura.
- Existe justificativa por caso de uso para cada trecho em processamento contínuo.
- Os dados sensíveis estão classificados antes de qualquer movimentação.
- A linhagem permite responder quem é afetado por uma alteração na origem.
- Há política de retenção e de descarte declarada por classe de dado.
- RPO e RTO estão declarados por domínio, com teste de recuperação previsto.
- As rotinas de carga são idempotentes antes de qualquer reprocessamento automático.
- A política de evolução de esquema declara o que quebra compatibilidade.
- Os riscos possuem sinal observável e resposta planejada.
- Existe ao menos um cenário de aceite que reprova a implementação atual.
A pergunta que encerra o trabalho: qual decisão fica mais segura depois deste artefato? Se nenhuma decisão da organização se torna mais segura, o artefato descreveu uma infraestrutura sem enunciar a sua finalidade.
13. Glossário
⏱ 1 minuto14. Referências
⏱ 1 minuto- TOGAF — Architecture Development Method. Método iterativo de desenvolvimento de arquitetura corporativa, com ênfase na rastreabilidade entre requisitos e decisões.
- DAMA-DMBOK2 — Data Management Body of Knowledge. Corpo de conhecimento em gestão de dados; posiciona a governança como função central e não posterior.
- ISO/IEC/IEEE 42010 — Architecture description. Norma que estabelece partes interessadas, preocupações e pontos de vista como elementos obrigatórios de uma descrição arquitetural.
- ISO/IEC 10746 — RM-ODP. Modelo de referência para processamento distribuído aberto; origem dos cinco pontos de vista tratados na Seção 8.
- AWS Well-Architected Framework. Conjunto de pilares e questões de avaliação aplicáveis à revisão de arquiteturas, incluindo excelência operacional e confiabilidade.
- Lei nº 13.709/2018 — Lei Geral de Proteção de Dados Pessoais. Base normativa das exigências de finalidade, minimização e eliminação tratadas na Seção 6.
A Aula 6 retoma a camada de serviço desta arquitetura para integrar as estrelas por processo em arquitetura dimensional corporativa, com Bus Matrix e dimensões conformadas; a Aula 7 trata da otimização física das consultas; as aulas de coleta, transformação e carga e de métricas e telemetria em ETLs tratam das rotinas que a alimentam. A arquitetura desenhada aqui é o contexto no qual esses temas se aplicam.