
Conheça a metodologia do curso, o caso fio condutor e o arco de desenvolvimento do arquiteto iniciante ao arquiteto de referência em times reais.
Defina arquitetura além de caixas e setas: decisões estruturais que moldam o sistema ao longo do tempo, separando o que muda do que não pode falhar.
Conecte decisões técnicas a consequências de negócio: velocidade de entrega, custo de operação, risco de incidente e capacidade de escalar em picos.
Mapeie o escopo real do arquiteto: visão técnica, guias de padrões, comunicação com stakeholders e o que explicitamente não é sua responsabilidade.
Trace as fronteiras entre os três papéis, entenda como colaboram e em quais contextos cada um tem mais influência sobre as decisões arquiteturais.
Transforme disponibilidade, escalabilidade e desempenho em requisitos mensuráveis de design antes de escrever a primeira linha de código do sistema.
Entenda como segurança, manutenibilidade e resiliência funcionam como atributos de design e por que não podem ser adicionados depois sem alto custo.
Domine o CAP Theorem e o raciocínio de trade-off: como o contexto do produto determina qual atributo de qualidade é prioritário em cada decisão.
Crie Architecture Decision Records que preservam o contexto das decisões, evitando perda de conhecimento quando membros do time mudam de empresa.
Use Context, Container, Component e Code para comunicar a mesma arquitetura para CEOs, desenvolvedores e investidores sem perder clareza em nenhum nível.
Entenda por que o monólito é o ponto de partida natural de sistemas bem-sucedidos e sob quais condições ele continua sendo a melhor escolha arquitetural.
Diferencie o monólito modular saudável do monólito distribuído: complexidade operacional de microsserviços sem nenhum dos benefícios que justificam a migração.
Identifique os sinais reais que indicam que o monólito está limitando: ciclos de deploy, conflitos de equipe e crescimento além da visão de um único time.
Aplique Domain-Driven Design para identificar bounded contexts e definir limites de serviço coesos antes de partir para qualquer implementação distribuída.
Escolha entre comunicação síncrona e assíncrona, defina contratos estáveis e aplique o princípio de propriedade exclusiva de dados por serviço.
Catalogue o overhead operacional real: service discovery, tracing distribuído, orquestração de deploys e gestão de dezenas de repositórios e pipelines.
Entenda como FaaS executa funções sob demanda, quando serverless se destaca e por que ele pode ser 70% mais barato para workloads intermitentes.
Conheça as limitações que o catálogo não anuncia: cold starts, limites de execução, estado efêmero e o risco de lock-in com serviços proprietários da nuvem.
Desacople componentes com eventos: entenda producers, consumers, brokers e a diferença entre message queue e publish/subscribe com Kafka e SQS.
Resolva os desafios reais da EDA: eventos fora de ordem, consumers não idempotentes e rastreamento com correlation IDs e dead-letter queues em produção.
Entenda como o modelo de imagem imutável obriga serviços a externalizarem estado e por que stateless é pré-requisito para escala horizontal eficiente.
Implemente logs centralizados, proxies de service mesh e normalização de saída sem modificar uma linha do código da aplicação com padrões de pod.
Use Ports and Adapters para isolar lógica de negócio de detalhes de infraestrutura e tornar a troca de banco, fila ou provedor externo uma operação trivial.
Separe modelos de leitura e escrita com CQRS e armazene histórico imutável com Event Sourcing para auditoria regulatória e reconstrução de estado no tempo.
Use uma matriz de decisão baseada em tamanho de time, maturidade de domínio e escala para escolher entre monólito, microsserviços, serverless e EDA.
Compare scale-up e scale-out, entenda os limites físicos e econômicos de cada abordagem e por que statelessness é pré-requisito para escala horizontal real.
Aplique a Inverse Conway Maneuver: redesenhe a estrutura das equipes para viabilizar a arquitetura desejada em vez de lutar contra a Lei de Conway.
Compare round-robin, least connections e IP hash, entenda afinidade de sessão e a diferença entre balanceamento de camada 4 e camada 7 em produção.
Implemente padrões de cache que reduzem latência de 450ms para 12ms e aprenda a evitar thundering herd e cache stampede em ambientes distribuídos.
Use filas para absorver picos de escrita e processar 10 mil confirmações simultâneas sem travar o banco, desacoplando producers de consumers em tempo real.
Modele recursos com verbos corretos, implemente paginação, idempotência e versionamento desde o início para evitar breaking changes custosas no futuro.
Use gRPC para comunicação interna de alto volume com baixa latência e GraphQL para clientes com necessidades variadas de dados, eliminando over-fetching.
Proteja APIs de clientes abusivos com token bucket e sliding window, e evite que um único bug de integração de terceiro derrube a plataforma para todos.
Implemente circuit breaker para evitar cascata de falhas e bulkhead para isolar pools de recursos, com calibração baseada nos SLOs definidos para o sistema.
Aplique read replicas, connection pooling, sharding e polyglot persistence com o CAP Theorem como guia entre consistência e disponibilidade em cada contexto.
Analise contratos REST com problemas intencionais, identifique anti-patterns e faça o redesign comparando com um contrato bem modelado do mesmo domínio.
Domine as primitivas criptográficas para decisões de design informadas: quando usar AES, RSA e SHA-256, e quais algoritmos estão quebrados e devem ser evitados.
Entenda o handshake TLS, onde terminá-lo na arquitetura e como mTLS garante autenticação mútua entre microsserviços em ambientes zero trust.
Aplique criptografia nas três camadas e use envelope encryption com DEK e KEK para rotação de chaves sem precisar recriptografar todos os dados existentes.
Armazene chaves em KMS gerenciado, automatize rotação e evite o incidente de chave hardcoded exposta em repositório que exige 18 horas de trabalho emergencial.
Separe com precisão quem é o usuário de o que ele pode fazer, e veja como a confusão entre os dois cria vulnerabilidades que passam por todos os outros controles.
Implemente Authorization Code com PKCE, entenda cada grant type do OAuth e como o OIDC adiciona identidade ao protocolo de autorização para SSO federado.
Valide tokens com verificação de assinatura, expiração, audience e issuer, e evite as armadilhas que mantêm tokens sem exp válidos por 14 meses em produção.
Implemente MFA com TOTP e FIDO2, configure SSO via OIDC e autentique serviços entre si com client credentials e SPIFFE sem depender de credenciais humanas.
Escolha o modelo certo para cada contexto: RBAC para papéis simples, ABAC para regras contextuais dinâmicas e ReBAC para permissões modeladas como grafos.
Externalize políticas de autorização para um componente dedicado, versionável e testável, garantindo consistência entre dezenas de microsserviços independentes.
Identifique ameaças sistematicamente com STRIDE antes de escrever código e use árvores de ataque para priorizar mitigações pelos caminhos mais prováveis de exploração.
Aplique superfície de ataque mínima e defesa em profundidade, e veja o OWASP Top 10 como falhas de design arquitetural que exigem redesign estrutural, não patches.
Implemente zero trust com Istio para mTLS automático entre pods e elimine credenciais hardcoded com HashiCorp Vault e injeção dinâmica de secrets no deploy.
Comunique mudanças com semver, versione APIs via path ou header e gerencie deprecação com sunset dates para evitar breaking changes que derrubam integrações.
Inverta o contrato: consumidores definem o que esperam e o provedor executa esses contratos como testes no CI antes de qualquer mudança ir a produção.
Diferencie integração, entrega e deploy contínuos com precisão, e entenda os pré-requisitos de maturidade que cada nível da disciplina exige do time.
Estruture pipelines com stages bem definidos: lint, testes, SAST, SCA, build com tag semântica, staging e quality gates que barram problemas antes da produção.
Versione, revise e teste pipelines como código de aplicação para evitar que mudanças silenciosas removam testes críticos sem revisão ou histórico rastreável.
Compare blue/green com troca instantânea de tráfego e rolling update com substituição gradual em custo, risco e velocidade de rollback para cada cenário real.
Exponha novas versões para 5% do tráfego real antes do rollout completo e desacople deploy de release com feature flags para eliminar risco de cada mudança.
Defina critérios de rollback baseados em SLOs, automatize detecção de degradação e use expand-contract para tornar migrations de banco completamente reversíveis.
Entenda por que saber que o sistema está "up" não basta: observabilidade é a capacidade de fazer perguntas novas sobre comportamento interno a partir de saídas externas.
Padronize logs em JSON com trace ID, request ID e tenant ID em cada linha para reduzir o diagnóstico de horas para minutos em sistemas com múltiplos serviços.
Use counter, gauge, histogram e summary com o padrão RED para monitorar latência, erros e throughput de cada serviço desde o primeiro deploy em produção.
Rastreie requisições através de oito serviços com spans e trace IDs, e identifique em 30 segundos onde estão os 4 segundos perdidos em um fluxo de cotação.
Instrumente uma vez com o padrão aberto OpenTelemetry e troque de Datadog para Grafana Cloud sem reinstrumentar nenhum dos serviços da plataforma.
Configure scraping, entenda o modelo de time series com labels e escreva queries PromQL com rate, histogram_quantile e sum para construir as métricas RED.
Projete dashboards com hierarquia clara - sintomas no topo, causas abaixo - e reduza 47 painéis confusos para 12 organizados por prioridade de diagnóstico.
Reduza 180 alertas semanais para 12 acionáveis com alertas baseados em SLO, e controle custos de observabilidade com sampling e retenção diferenciada por tipo.
Defina SLIs que representam a experiência do usuário, estabeleça SLOs mensuráveis e entenda o que um SLA de 99,9% realmente implica em minutos de downtime tolerado.
Use o saldo de error budget para decidir objetivamente quando fazer deploys arriscados e quando priorizar estabilidade em vez de entrega de novas features.
Calibre retries para erros transientes, aplique backoff com jitter para evitar thundering herd e use timeouts para evitar acúmulo de requisições pendentes em memória.
Mantenha 80% da funcionalidade operacional durante falhas de dependência com cache de fallback e degradação controlada que preserva a experiência essencial do usuário.
Formule hipóteses sobre o comportamento do sistema, injete falhas em escopo controlado e descubra antes do incidente real o que o sistema faz sob perturbação.
Defina RTO e RPO como parâmetros arquiteturais e escolha entre backup-restore, pilot light, warm standby e active-active com critério de custo e criticidade.
Avalie multi-região com honestidade: latência de replicação, custo duplicado e complexidade operacional versus o nível de criticidade que realmente justifica cada estratégia.
Classifique débito por tipo - arquitetural, de código, de dados e de infraestrutura - e identifique os sinais que indicam que o débito se tornou crítico para o negócio.
Avalie os três caminhos com critérios objetivos: rewrite subestima risco, refactor incremental é mais previsível, e replace por SaaS é frequentemente ignorado.
Extraia funcionalidades do legado de forma incremental com proxy de roteamento, mantendo o sistema original operacional até a substituição completa ser validada.
Proteja o sistema novo da contaminação pelo modelo legado com ACL e substitua componentes internos de grande porte sem manter branches de código paralelos.
Migre dados sem janela de manutenção com dual-write para validação de consistência, lazy migration sob demanda e expand-contract para rollback a qualquer etapa.
Identifique bounded contexts, formalize interfaces entre módulos e use fitness functions no CI para impedir que o acoplamento proibido reapareça após a refatoração.
Quantifique débito em termos de negócio, integre modernização no planejamento com capacidade reservada e apresente o retorno mensurável para lideranças de produto.
Adote mudança incremental guiada como princípio e projete sistemas que mudam de direção sem reescritas completas quando o produto evolui além do design original.
Transforme acoplamento, performance e segurança em testes automatizados no CI que capturam degradações arquiteturais antes de chegarem à produção.
Substitua comitês que acumulam 40 decisões na fila por ADRs versionados, guilds quinzenais e guardrails automatizados que verificam conformidade em tempo de build.
Catalogue débito com custo mensurável em termos de negócio e integre sua priorização no sprint como trabalho legítimo com argumento de retorno para o produto.
Governe dezenas de consumidores com versões paralelas, sunset com aviso formal e consumer-driven contracts para detectar incompatibilidade antes do deploy.
Combine Strangler Fig, expand-contract, feature flags e dual-write em um plano com marcos mensuráveis, critérios de rollback e comunicação de risco por etapa.
Integre estilos, escala, segurança, CI/CD, observabilidade, resiliência, modernização e governança em um sistema coeso de raciocínio arquitetural aplicável em produção.
Construa credibilidade que gera adesão voluntária, conduza design reviews que produzem alinhamento genuíno e lide com resistência a mudanças em times autônomos.
Adapte nível de abstração e vocabulário para cada público sem perder substância, e construa narrativas técnicas que geram decisão, não apenas compreensão superficial.
Aplique os quatro componentes da CNV - observação, sentimento, necessidade e pedido - para transformar conflitos técnicos em conversas que chegam a uma decisão.
Dê feedback técnico percebido como colaboração em vez de julgamento e identifique a necessidade por trás de uma posição técnica aparentemente irreconciliável.
Estruture sessões com agenda, timebox e DACI explícito para transformar reuniões de duas horas sem decisão em 60 minutos com escolha documentada em ADR.
Separe argumento técnico legítimo de apego pessoal à solução e crie condições de segurança psicológica para que times talentosos discordem de forma produtiva.
Mida seu sucesso pelas boas decisões que os times tomam sem você: playbooks, capacitação de tech leads e ADRs como mecanismo de autonomia arquitetural distribuída.
Você já sabe que arquitetura de software importa. Este curso ensina por que cada decisão importa - e como liderar esse raciocínio em times reais.
A maioria dos cursos de arquitetura ensina padrões. Este curso ensina a pensar. A diferença é simples: saber que microsserviços existem não prepara ninguém para decidir se microsserviços fazem sentido para aquele produto, naquele momento, com aquele time e aquelas restrições de orçamento. Esse raciocínio é o que separa um desenvolvedor sênior de um arquiteto.
O que torna este curso diferente
Metodologia inspirada nos casos da Harvard Business School: cada tema segue o ciclo conceito - caso real - princípio acionável, a mesma abordagem usada para formar tomadores de decisão, aplicada ao contexto de sistemas de software.
Fio condutor narrativo: você acompanha a jornada arquitetural da LunaLog, uma startup de logística fundada por Roberto e Ana, do monólito inicial até uma plataforma que serve centenas de transportadoras. Os conceitos se manifestam em decisões reais, com consequências concretas.
Foco em decisão, não em catálogo: o curso não lista todos os padrões existentes. Ensina como avaliar, comparar e justificar uma escolha arquitetural diante de requisitos de negócio, atributos de qualidade e trade-offs inevitáveis.
O que você vai aprender
Definir e comunicar arquitetura para diferentes públicos, do CEO ao desenvolvedor, usando o C4 Model
Avaliar e negociar atributos de qualidade: disponibilidade, escalabilidade, segurança e resiliência
Analisar trade-offs arquiteturais com CAP Theorem, PACELC e outros frameworks consolidados
Escolher entre monólito, microsserviços, serverless, arquitetura orientada a eventos e arquitetura em camadas
Projetar sistemas escaláveis com cache, filas, CQRS e design de APIs robustas
Estruturar segurança em nível arquitetural: autenticação, autorização, Zero Trust e proteção de dados
Implementar observabilidade, resiliência, circuit breakers e estratégias de recuperação de falhas
Conduzir modernização e migração de sistemas legados com risco controlado
Construir arquitetura evolutiva com governança e decisões rastreáveis via ADR
Exercer o papel de arquiteto em times reais: facilitação, comunicação e influência sem autoridade hierárquica
Para quem é este curso
Desenvolvedores seniores que querem evoluir para o papel de arquiteto de soluções
Arquitetos que tomam boas decisões técnicas, mas têm dificuldade em justificá-las ou comunicá-las
Tech leads que precisam liderar decisões arquiteturais em times distribuídos
Profissionais em transição de carreira para papéis de arquitetura em empresas de médio e grande porte
O que está incluído
Mais de 90 aulas em 10 seções: fundamentos, estilos arquiteturais, design de sistemas, segurança, CI/CD, observabilidade, resiliência, modernização, governança e liderança técnica
Aulas práticas com análise de contratos de API, diagnóstico de sistemas inseguros, pipelines com problemas reais e dashboard de observabilidade com Prometheus e Grafana
Acesso vitalício com atualizações incluídas
Uma nota sobre a abordagem
Arquitetura de software não é uma lista de padrões para memorizar. É uma prática de julgamento: saber qual pergunta fazer antes de propor uma solução, entender o que será sacrificado em cada escolha, e comunicar isso com clareza para quem vai construir, operar e financiar o sistema.
Se você quer um catálogo de padrões, existem ótimos livros, videos, artigos publicados para isso. Se você quer aprender a pensar como arquiteto, este é o curso certo.