#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)

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...

Hey! 👋 O principal encontro de devs sênior+ do Brasil! A Select Experience chega à sua terceira edição como o ponto de encontro das principais referências em tecnologia. Um evento feito sob medida para quem já tem estrada na área e busca conversas que realmente agregam. As inscrições para a edição de 2025 já estão abertas. 01 DE NOVEMBRO ~ STATE INNOVATION CENTER, SÃO PAULO, SPGaranta o seu lugar entre os melhores! Até mais,Gabriel Nunes (@nunesgabriel) Dividir para conquistar Dividir tarefas...

Hey! 👋 Faltam poucos dias para a CODECON UNIVERSE, mas ainda dá tempo de se inscrever! 🗓️ 17 e 18 de maio📍 Ágora Tech Park, Joinville👉 Inscreva-se em: codecon.dev/universe Segue a gente no Insta pra ver toda a cobertura e os resultados do hackathon. Até mais,Gabriel Nunes (@nunesgabriel) O guia definitivo para virar o dev que todo mundo quer na equipe Sabe aqueles programadores tops? Então, eles não nasceram assim. Viraram feras porque seguiram alguns princípios que qualquer um pode adotar...