Como projetar um AI agent do zero

No post anterior, eu destrinchei como agents funcionam: LLM, tools e loop. Agora a conversa muda de nível. O problema não é fazer um demo de 5 minutos. É projetar um agent que aguente produção, rode 24/7 e não precise de babá. Continua sendo design de sistema, com as perguntas de sempre: quais são os requisitos, quais os failure modes, como escala e como monitora? As 5 decisões de design Projetar um agent normalmente vira 5 decisões: ...

17 de julho de 2026 · 7 minutos · Ricardo Martins

Machine learning system design: o que todo infra deveria saber

O time de ML treinou um modelo que funciona no notebook. Accuracy de 94%. Todo mundo comemora. Aí vem a parte menos glamourosa: colocar isso em produção. “Dá pra colocar isso numa API com 99.9% de uptime, latência < 200ms e 10K requests por segundo?” É aqui que system design de ML cai no colo de infra. A boa notícia é que a maior parte do problema parece familiar. Serving, rollout, observabilidade e capacity planning continuam sendo trabalho de sistema distribuído. O pedaço realmente diferente existe, mas é menor do que o hype sugere. ...

11 de julho de 2026 · 8 minutos · Ricardo Martins

System design: URL Shortener, simplicidade em escala

“Design a URL shortening service like Bitly or TinyURL.” Essa é geralmente a primeira pergunta de system design que candidatos encontram. Parece simples: recebe URL longa, retorna URL curta, redireciona quando acessam. Dá pra fazer em 50 linhas de código, certo? Certo. Pra 100 usuários. Agora faz isso pra 100 bilhões de URLs com 100.000 redirects por segundo e vamos ver o quão “simples” é. O URL Shortener é o exercício perfeito pra fechar a série porque combina decisões aparentemente simples que revelam profundidade quando você puxa o fio: ...

30 de maio de 2026 · 17 minutos · Ricardo Martins

System design: Twitter/X, feed de notícias em escala

“Design a social media feed like Twitter.” Se YouTube é sobre arquivos grandes, WhatsApp sobre entrega garantida, e Uber sobre dados em movimento, Twitter é sobre o problema mais traiçoeiro de todos: fan-out. Um único tweet de alguém com 50 milhões de followers precisa aparecer na timeline de cada um deles, em segundos. No papel parece simples: “me mostra os posts de quem eu sigo em ordem cronológica”. Em produção vira outro bicho quando a escala é: ...

28 de maio de 2026 · 17 minutos · Ricardo Martins

System design: Uber, geolocalização e matching em tempo real

“Design a ride-sharing platform like Uber.” Se YouTube é sobre throughput de dados e WhatsApp sobre latência de mensagens, Uber é sobre dados em movimento. Literalmente. Milhões de carros se movendo simultaneamente, e o sistema precisa saber onde cada um está, a cada segundo, pra conectar passageiros e motoristas em tempo real. O desafio do Uber é único porque combina: Geolocalização em tempo real (milhões de pontos se movendo) Matching otimizado (encontrar o melhor motorista, não apenas o mais próximo) Cálculo de rota e ETA (com condições de tráfego variando) Pricing dinâmico (oferta e demanda flutuando por região e minuto) Tudo isso com latência perceptível pro usuário de < 3 segundos entre apertar “pedir corrida” e ver o motorista atribuído. ...

26 de maio de 2026 · 17 minutos · Ricardo Martins

System design: WhatsApp, messaging em tempo real

“Design a messaging system like WhatsApp.” Se o YouTube é o exercício clássico de throughput e storage, WhatsApp é o exercício clássico de latência e conexões persistentes. O desafio muda completamente: em vez de entregar arquivos grandes pra milhões de viewers passivos, precisamos entregar mensagens pequenas pra bilhões de usuários em tempo real e garantir que nenhuma se perca. WhatsApp processa mais de 100 bilhões de mensagens por dia. O que impressiona aqui não é só a escala, mas a pressão simultânea por latência baixa, conexões persistentes e durabilidade. ...

24 de maio de 2026 · 14 minutos · Ricardo Martins

System design: YouTube, streaming de vídeo em escala

“Design a video-sharing platform like YouTube.” Essa é uma das perguntas mais clássicas de system design porque um sistema de vídeo encosta em quase tudo que costuma cair na entrevista: upload grande, processamento assíncrono, storage massivo, CDN global, adaptive streaming e leitura pesada com cache. Nesse artigo, vamos aplicar o framework do post anterior pra projetar uma plataforma de vídeo do zero. Não vou fingir que estamos inventando o YouTube. Vou explicar por que cada decisão arquitetural faz sentido no contexto de escala real. ...

22 de maio de 2026 · 12 minutos · Ricardo Martins

System design na prática: como pensar sistemas em escala

Você está numa entrevista. O entrevistador vira e fala: “Design a video-sharing platform like YouTube.” Você tem 45 minutos. O que faz primeiro? Se a resposta for “começo desenhando caixinhas no diagrama”, você já perdeu. System design não é sobre saber a resposta certa. É sobre mostrar como você pensa quando o problema ainda está meio em aberto. E isso melhora com framework, prática e repertório. Este é o primeiro artigo da série System Design na Prática. Nos próximos posts eu vou aplicar esse framework em sistemas reais como YouTube, WhatsApp, Uber e Twitter. Mas antes precisamos do toolkit mental. Esse artigo é o seu canivete suíço. ...

20 de maio de 2026 · 9 minutos · Ricardo Martins

Guia para arquitetura de aplicações

Se você estiver desenvolvendo seus aplicativos nativos em nuvem, recomendo fortemente que você consulte este guia mesmo que não esteja usando Azure especificamente. Estilos de arquitetura N-tier: divide um aplicativo em camadas lógicas e camadas físicas Web-queue-worker: frontend e backend dissociados por mensagens assíncronas Microserviços: serviços funcionalmente decompostos que chamam uns aos outros por meio de APIs Arquitetura orientada a eventos: produtor/consumidor. Visão independente por subsistema Big data: divida um enorme conjunto de dados em pequenos pedaços. Processamento paralelo em datasets locais Big compute: alocação de dados para milhares de núcleos Escolhas tecnológicas Escolha do serviço de computação Escolha do serviço de armazenamento de dados Escolha do serviço de mensagens assíncronas Design da arquitetura Arquiteturas de referência: Cada arquitetura de referência inclui práticas recomendadas, juntamente com considerações sobre escalabilidade, disponibilidade, segurança, resiliência e outros aspectos do design Princípios de design: 10 princípios de design de alto nível que tornarão seu aplicativo mais escalonável, resiliente e gerenciável Padrões de design: Esses padrões de design são úteis para construir aplicativos confiáveis, escaláveis e seguros na nuvem Práticas recomendadas: abrangem diversas considerações de design, incluindo design de API, escalonamento automático, particionamento de dados, armazenamento em cache e assim por diante. Melhores práticas de segurança: descreva como garantir que a confidencialidade, integridade e disponibilidade da sua aplicação não sejam comprometidas por agentes mal-intencionados. Pilares de qualidade Microsoft Azure Well-Architected Framework Mais detalhes Conceitos básicos de arquitetura de aplicações

14 de novembro de 2023 · 2 minutos · Ricardo Martins