System Design ArenaCONSTRUA. SIMULE. APRENDA.

Desenvolva seu conhecimento de System Design com um simulador.

Escolha um desafio, desenhe a arquitetura num canvas, simule tráfego e falhas, e receba avaliação de juízes de IA — na prática, como num laboratório de arquitetura.

Começar um desafio →Explorar problemas
Canvas interativo
Arraste, conecte e projete visualmente.
Chaos testing
Injete falhas e veja como o sistema aguenta.
Juízes de IA
Feedback inteligente e acionável.
ChatStream● Salvo
▷ Simular
UsersAPI GatewayAuth ServiceChat ServiceNotificationMessage QueueMedia ServiceUser DBMessage DBObject Storage
Métricas ao vivo● Saudável
Latência (p95)120ms
Throughput18.7K rps
Resiliência98.6%
Chaos Testing● 2 ativos
Falha de AZ
us-east-1a
Ativo
Latência no banco
+500ms
Ativo
Leaderboard
1arquiteto999.842
2system_slayer9.201
3byte_bender8.768
12você 7.623
12
desafios prontos
3
níveis: fácil, médio, difícil
3
juízes de IA por solução
simulações e tentativas

Como funciona

Do problema à avaliação, em quatro passos.

1. Escolha um desafio

De encurtador de URLs a feeds, mensageria em tempo real e geolocalização em escala.

2. Desenhe a arquitetura

Arraste componentes para o canvas e conecte fluxos de leitura, escrita e eventos.

3. Simule e injete falhas

Veja gargalos ficarem vermelhos sob carga e teste a resiliência com chaos engineering.

4. Receba avaliação de IA

Juízes de IA dão nota, apontam riscos e ensinam como melhorar a solução.

O que o simulador faz

Um laboratório completo de arquitetura, não uma prova teórica.

Canvas interativo

Desenhe sistemas distribuídos arrastando componentes e conectando fluxos — sem escrever código.

Motor de simulação

Estima latência (p50/p95/p99), throughput, gargalos, pontos únicos de falha e custo do seu desenho.

Chaos engineering

Injete quedas, latência e perda de pacotes e veja se a arquitetura sobrevive — com score de resiliência.

Juízes de IA

Múltiplas perspectivas (escalabilidade, confiabilidade, segurança) avaliam e dão feedback acionável.

Leaderboard

Compare sua solução com outras pessoas por problema — desempate por simplicidade e custo.

Dashboard de progresso

Acompanhe sua evolução, pontos fortes e o que desenvolver ao longo dos desafios.

Competências que você desenvolve

Três dimensões avaliadas por juízes de IA, sustentadas pelos padrões e trade-offs que você pratica em cada desafio.

Avaliado por juízes de IA
EscalabilidadeConfiabilidadeSegurança
Padrões de arquitetura
Cache & CDNBalanceamento & autoscalingMensageria & eventosReplicação de dadosIdempotência & DLQRAG & agentes de IA
Resiliência & trade-offs
Chaos engineeringPontos únicos de falha (SPOF)Degradação graciosaOrçamento de latência (p95)Custo & simplicidade

Para quem é

Se você quer pensar em sistemas — e não só em código — este é o seu lugar.

Quem vai encarar entrevistas

Pratique trade-offs e justifique decisões de arquitetura como numa entrevista real de System Design.

Devs subindo de senioridade

Saia do CRUD: entenda escala, gargalos, falhas e custo desenhando sistemas de verdade.

Estudantes e curiosos

Aprenda fazendo, com feedback na hora — sem precisar montar nenhuma infraestrutura.

Desafios disponíveis

Do fácil ao difícil — crie sua conta para resolver.

Fácil

Chatbot com RAG (busca aumentada)

Você precisa desenhar um assistente de perguntas e respostas sobre uma base de conhecimento (documentos, FAQ). Cada pergunta recupera trechos relevantes por similaridade e gera a resposta com um LLM. Muitas perguntas se repetem, e a base é atualizada de forma contínua.

Fácil

Catálogo de produtos (read-intensivo)

Você precisa desenhar a navegação de um catálogo de produtos de e-commerce. A grande maioria das requisições é de leitura (listar e consultar produtos); cadastros e edições são raros e feitos pela equipe interna.

Fácil

Galeria de imagens (upload e visualização)

Você precisa desenhar um serviço onde usuários enviam fotos e as visualizam. As visualizações são muito mais frequentes que os uploads, e as imagens são pesadas — devem ser servidas com baixa latência por uma borda de cache.

Fácil

Criar um encurtador de URLs

Você precisa desenhar um sistema que permita criar URLs curtas e redirecionar usuários para a URL original. O volume de redirecionamentos (leitura) é muito maior que o de criação (escrita).

Médio

Assistente com agente e ferramentas

Você precisa desenhar um assistente que decide e chama ferramentas (APIs externas) em vários passos para cumprir uma tarefa, mantém memória da conversa e não trava o usuário enquanto executa ações demoradas.

Médio

Pagamentos com confirmação assíncrona

Você precisa desenhar um sistema de pagamentos que autoriza a cobrança, confirma de forma assíncrona via um provedor externo e evita cobrança duplicada, notificando o usuário ao final.

Médio

Geração de relatórios pesados sob demanda

Você precisa desenhar um sistema onde usuários solicitam relatórios pesados (que levam segundos ou minutos para gerar). A solicitação deve responder na hora com um identificador, e o relatório é gerado em segundo plano e disponibilizado para download.

Médio

Notificações em tempo real (fan-out)

Você precisa desenhar um sistema de notificações: quando um usuário realiza uma ação, um evento precisa ser entregue (fan-out) para muitos seguidores via push/e-mail. A geração do evento não pode esperar a entrega a todos os destinatários.

Difícil

Plataforma de agentes multi-tenant em escala

Você precisa desenhar uma plataforma que serve muitos agentes de IA para múltiplos clientes ao mesmo tempo, com guardrails de segurança (entrada/saída), roteamento e cache de modelos para controlar custo, memória por tenant e observabilidade. O provedor de modelo pode ficar indisponível.

Difícil

Mensageria em tempo real (estilo Slack)

Você precisa desenhar uma plataforma de mensagens de equipe em tempo real como o Slack: canais, mensagens diretas, presença e histórico, com entrega em tempo real para todos os membros conectados de um canal.

Difícil

Feed do Twitter/X

Você precisa desenhar a home timeline do Twitter/X: postar tweets e montar o feed de cada usuário com os tweets de quem ele segue. A leitura da timeline é muito mais frequente que a escrita, e usuários populares geram fan-out massivo.

Difícil

Motoristas próximos (estilo Uber)

Você precisa desenhar o serviço de localização que encontra motoristas próximos de um passageiro, em altíssima escala (na casa de centenas de milhares a 1 milhão de RPS): motoristas atualizam a posição constantemente e passageiros consultam quem está por perto.

Perguntas frequentes

Sobre a plataforma
Preciso saber programar?

Não. Você projeta visualmente, arrastando componentes e conectando fluxos no canvas — nenhum código é necessário.

Como funciona a avaliação por IA?

Após simular, juízes de IA analisam o resultado por três dimensões — escalabilidade, confiabilidade e segurança — e devolvem nota, riscos e recomendações acionáveis.

Preciso instalar alguma coisa?

Não. Roda 100% no navegador. Crie uma conta e comece a projetar.

É grátis?

Sim. Você pode resolver os desafios e simular quantas vezes quiser.

Os resultados são realistas?

A simulação é um modelo determinístico para fins de aprendizado (latência, throughput, gargalos, SPOF, custo), não uma medição de produção. O foco é praticar os trade-offs corretos.

Isso ajuda em entrevistas de System Design?

Sim. A plataforma treina exatamente o que uma entrevista avalia — esclarecer escopo, justificar trade-offs e adaptar o design — só que com simulação e feedback objetivos a cada tentativa.

Como praticar System Design
Existe uma resposta certa?

Não. Duas arquiteturas bem diferentes podem pontuar bem se o raciocínio e os trade-offs forem sólidos. O que importa é como você pensa, não decorar um diagrama único.

Por onde começo um desafio?

Comece esclarecendo os requisitos do cenário (leitura x escrita, pico de tráfego, restrições). No canvas, parta do nó de Entrada e vá do simples ao detalhado — adicione complexidade só quando um requisito justificar.

Como sei onde focar?

Identifique o tipo do sistema pelo perfil de tráfego do desafio: read-heavy pede cache/CDN e baixa latência; write-heavy pede throughput e durabilidade; tempo real pede latência e garantias de entrega; data-heavy pede modelagem e consistência; e cenários de falha pedem resiliência.

Qual o erro mais comum?

Confundir complexidade com qualidade. Sharding, microsserviços e filas só ajudam quando há um requisito que os justifique — caso contrário, viram custo e fragilidade. Ganhe complexidade aos poucos, amarrada a uma necessidade real.

Preciso pensar em falhas desde o início?

Sim. Designs que colapsam sob estresse perdem pontos. Use o Chaos Testing para injetar quedas e latência e verifique se a arquitetura sobrevive — redundância, timeouts, retries e DLQ existem para isso.

Quando paro de projetar?

Não busque perfeição. Uma arquitetura razoável, explicada com trade-offs honestos e que aguenta o pico e as falhas, já é uma boa solução. Repetir o mesmo desafio e refinar vale mais do que resolver muitos uma vez só.

Pronto para projetar?

Crie sua conta grátis e resolva seu primeiro desafio agora.

Começar um desafio →
System Design Arena — aprenda System Design na prática