#150 - Missão (quase) impossível: escalar sem reescrever tudo


Hey! 👋

Que tal apoiar a Codecon e ganhar benefícios exclusivos?

Por R$15/mês ou R$ 180/ano, você apoia nossos projetos, entra nos bastidores do que rola por aqui, troca ideia com quem tá por trás da Codecon e ainda curte vantagens em eventos, produtos e muito mais.

E mais! Durante esse mês de maio, se a gente conseguir atingir a primeira meta, vamos sortear um NINTENDO SWITCH novinho. Bora lá? Faltam poucas pessoas!

SEJA CODECON PRO! 🔥

Veja todos os detalhes e vantagens clicando aqui.

Até mais,
Gabriel Nunes (@nunesgabriel)

Missão (quase) impossível: escalar sem reescrever tudo

Escalar um sistema que cresce quase 100 vezes não é pra qualquer um, mas a equipe de banco de dados da Figma encarou esse desafio de frente, e viveu pra contar. Tudo começou com o particionamento vertical, que foi uma solução rápida e eficiente pra ganhar fôlego. Mas logo perceberam: isso só resolveria até certo ponto.

À medida que os dados cresciam e as tabelas ficavam gigantescas (tipo, bilhões de linhas!), o Postgres começou a mostrar sinais de cansaço. Vacuums demorando, limites de IOPS estourando... Era hora de algo maior: o particionamento horizontal.

Mas eles queriam fazer isso do jeito certo: sem travar o desenvolvimento, sem downtime pesado, sem refazer o sistema todo. Avaliaram soluções como CockroachDB e Spanner, mas o risco era alto demais. Também descartaram migrar pra NoSQL, pois o modelo relacional do Figma era complexo demais pra isso.

A solução? Construir o próprio sharding horizontal em cima da infra de Postgres já existente. Criaram os “colos” (grupos de tabelas com a mesma chave de fragmentação), implementaram fragmentação lógica com visualizações, desenvolveram um serviço chamado DBProxy pra rotear as consultas... Tudo isso pra escalar sem quebrar o produto.

Foram nove meses de trabalho até conseguir shardear a primeira tabela com sucesso. Mas agora, com essa estrutura em pé, o Figma pode escalar quase infinitamente, e o mais legal: sem os devs precisarem ficar refatorando código toda hora.

Foi desafiador, mas ao mesmo tempo empolgante. Como eles mesmos dizem: se o particionamento vertical foi a estrada, o horizontal abriu caminho pro voo.

Um recado do patrocinador 📣

O time de tecnologia do Asaas está crescendo e tem vagas abertas para diferentes níveis de experiência. Por lá, valoriza-se a autonomia com responsabilidade, troca constante entre os times e um ambiente onde organização e colaboração caminham lado a lado.

O modelo de trabalho é 100% remoto, com auxílio educação, plano de saúde integral e muitos outros benefícios. Se você quer evoluir na carreira e contribuir com a missão de simplificar o mercado financeiro, confira as oportunidades abertas.

👂 ouvir

Saber ouvir de verdade vai muito além de fazer cara de atento e balançar a cabeça. Significa deixar o outro sentir o que sente sem tentar consertar, não dar conselhos sem ser pedido, não transformar tudo em "isso já aconteceu comigo!", e até saber fazer boas perguntas. Ouvir bem exige empatia real, aquela que desliga o ego por uns minutinhos. E acredite: isso pode transformar seus relacionamentos. Porque ouvir de verdade é um superpoder simples… mas que quase ninguém usa direito. Bora praticar?

🤓 aprender

Aprender algo novo pode ser um baita desafio: você se sente burro, fica impaciente, morre de medo de fracassar, se sabota por ansiedade e ainda é inconsistente. Mas a real é que isso faz parte do processo. O segredo? Abraçar o papel de iniciante, fazer perguntas (mesmo as bobas), colocar a mão na massa e manter a constância. Errar faz parte. Se quiser aprender 10x mais rápido, foque no essencial, pratique sem frescura e não fique só acumulando conhecimento: use-o! A jornada é longa, mas vale cada curva.

🧑‍💻 open source

Trabalhar com código aberto pode ser incrível, mas não é tão simples quanto parece. No começo, tudo é empolgação: contribuir com projetos, aprender muito e até ganhar uns brindes por isso. Com o tempo, vem a realidade: manter a qualidade exige dedicação, e tempo também custa. Algumas empresas pagam pelas contribuições, surgem parcerias, patrocínios e até salários por horas dedicadas. Ainda assim, viver só de open source é difícil. Mas uma coisa é certa: quem ama o que faz, continua, com ou sem pagamento.

⏳ contra o tempo

É possível desenvolver aplicações em 60 minutos? Essa é a missão do dev Bryant. E você pode acompanhá-lo em uma série de vídeos em que ele tenta fazer isso usando a plataforma de código aberto Directus. Seu objetivo é desenvolver completamente a funcionalidade principal do aplicativo ou fazer um progresso significativo dentro da hora estipulada.

👀 essa tarefa vai levar quanto tempo?

Um dos maiores erros na engenharia de software é tratar estimativas como prazos fixos. Aquela previsão inocente de “dois dias” vira motivo de cobrança, pressão e até microgerenciamento quando algo sai do previsto — o que, aliás, é bem comum. O problema? Não é o time, e sim o modelo mental que distorce o que é uma estimativa. Veja o vídeo e entenda por que toda estimativa está errada, quais leis e vieses estão por trás disso e como se proteger de cobranças injustas em ambientes imprevisíveis como o desenvolvimento de software.

😀 diversão

Programar pode ser uma experiência divertida e cheia de criatividade, às vezes até demais! O desafio: descobrir a duração de arquivos MP3 e M4A de forma leve, sem depender de bibliotecas externas ou ferramentas como ffprobe. A solução: usar Promise.race para correr atrás (literalmente) dos metadados, iniciando duas buscas: uma do começo e outra do fim do arquivo. Quem achar primeiro, vence. E a perdedora é cancelada com estilo usando AbortController. Um ótimo exemplo de como simplicidade e criatividade podem andar juntas no código!

No episódio dessa semana do podcast conversamos com Giovana Barretos, Software Development Engineer in Test na Volvo. Trocamos uma ideia muito legal sobre a importância de testes e de olhar pra qualidade do software desde o começo.

Tem alguma pergunta? Só responder o e-mail!

R. Dr. João Colin, 1285, Joinville, SC 89204-001
Desinscrever-se · Preferências

code(weekly)

Junte-se à 7.500+ devs e receba e-mails semanais com a melhor curadoria de artigos, repositórios e outros links interessantes da área tech.

Read more from code(weekly)
Fact or Fiction

Hey! 👋 O amor está no ar! E a gente ama tanto a comunidade dev que estamos preparando uma SUPER PROMO para o Dia dos Namorados. 💕 Somente no dia 12 de junho, os ingressos pra Codecon Summit 2025 estarão com valores especiais. Fique ligado em nosso site e não perca esse presente. Com carinho: equipe Codecon. 💌 Entre o dev estrela e o dev time: eu fico com o segundo Sabe aquele papo de “engenheiro 10x”? Muita gente acha que é lenda, outros juram que todo time precisa de um. Mas o real é que ser...

Hey! 👋 A Codecon Summit 25 está com a programação totalmente definida! Se você queria saber tudo que vai rolar antes de comprar o ingresso, chegou a hora. No site você já pode ver a lista completa de palestrantes, os temas das palestras e os horários. Confira tudo aqui! Até mais,Gabriel Nunes (@nunesgabriel) Desmistificando o GC: nem todo herói usa ponteiro manual Em um mundo onde velocidade e concorrência são reis, os sistemas operacionais precisam ser rápidos como um foguete e multitarefa...

Hey! 👋 Você sabia que agora temos uma comunidade no Discord? Bom, na verdade a gente já tinha, só tava abandonada. Mas agora ela tá ativa novamente e estamos sempre trocando ideia por lá (tem até um bot de lo-fi). E junto dela, a gente também lançou o plano Codecon Pro. Uma forma de você apoiar a Codecon a tirar mais projetos do papel. Mais barato que um lanche por mês Até mais,Gabriel Nunes (@nunesgabriel) ADRs: o diário de bordo da arquitetura Quando a gente fala de decisões de arquitetura...