---
title: "Reddit Dá Adeus ao Python e Abraça o Go: A Troca que Cortou a Latência pela Metade"
author: "Ignácio Afonso"
date: "2025-11-29 10:02:00-03"
category: "Tecnologia & Desenvolvimento"
url: "http://desbugados.scale.press/portal/desbugados/post/2025/11/29/reddit-da-adeus-ao-python-e-abraca-o-go-a-troca-que-cortou-a-latencia-pela-metade/md"
---

# A Grande Migração do Reddit: Python Dá Lugar ao Go

Para nós, arqueólogos digitais, há uma beleza em sistemas que simplesmente funcionam. Pense no backend de comentários do Reddit como um desses artefatos robustos, uma base de código em Python que sustentou por anos uma das maiores praças de debate da internet. Mas até as pirâmides precisam de manutenção. Em uma movimentação de engenharia digna de nota, o Reddit anunciou a conclusão de um projeto colossal: a reconstrução completa de seu backend de comentários, trocando o veterano Python pela eficiência concorrente do Go.

A decisão, conforme detalhado pela equipe de engenharia do Reddit, não foi um mero capricho tecnológico. Foi uma resposta a desafios cada vez mais evidentes de latência e escalabilidade em um dos sistemas com maior volume de escrita da plataforma. O resultado? Uma impressionante redução de 50% na latência p99 para operações críticas, como a criação e atualização de comentários. A mudança marca um passo fundamental na modernização das fundações do site.

## Uma Cirurgia de Coração Aberto Digital

Mudar a espinha dorsal de um serviço usado por milhões de pessoas diariamente é como trocar o motor de um avião em pleno voo. O sistema legado em Python, apesar de sua longevidade, apresentava picos de latência que podiam chegar a longos 15 segundos em momentos de tráfego intenso. Para uma plataforma onde a velocidade da interação é tudo, isso era um gargalo inaceitável. A solução foi migrar para um microsserviço em Go, uma linguagem conhecida por sua performance e habilidade de lidar com alta concorrência, uma característica essencial para o volume de interações do Reddit.

Esta migração é parte de uma estratégia maior da empresa para decompor seu antigo sistema monolítico. De acordo com o comunicado, o Reddit se apoia em quatro modelos de dados centrais: Contas, Posts, Subreddits e, claro, Comentários. Com esta atualização, os sistemas de Contas e Comentários já foram totalmente modernizados, enquanto o trabalho nos Posts e Subreddits continua. É a lenta e cuidadosa restauração de uma relíquia digital para prepará-la para o futuro.

## O Plano Mestre: 'Tap-Compare' em Ação

A genialidade do projeto não está apenas na troca de tecnologia, mas em como ela foi executada sem que os usuários percebessem. A equipe do Reddit adotou uma estratégia multifásica, utilizando uma técnica chamada **'tap-compare'**. Funciona assim: para as operações de leitura, uma parte do tráfego ao vivo era enviada simultaneamente para o sistema antigo em Python e para o novo em Go. As respostas eram comparadas nos bastidores para garantir consistência, mas apenas a resposta do sistema antigo era retornada ao usuário. Uma espécie de ensaio geral com a plateia já no teatro, mas sem que ela soubesse.

As operações de escrita eram ainda mais delicadas, pois envolviam múltiplos bancos de dados: PostgreSQL para persistência, Memcached para cache e Redis para eventos de captura de dados. Para evitar qualquer risco de corrupção dos dados de produção, a equipe criou 'datacenters irmãos' — clones da estrutura de produção apenas para os testes do serviço em Go. Isso permitiu validar o comportamento do novo sistema em um ambiente seguro, mas realista. Segundo o post de engenharia, foram 18 caminhos de validação distintos para garantir que tudo funcionasse perfeitamente.

## Nem Tudo São Flores (ou Gophers)

Claro, um projeto dessa magnitude raramente acontece sem alguns percalços. A equipe do Reddit encontrou e resolveu vários desafios pelo caminho. Um dos primeiros foi um problema de serialização: os serviços em Python inicialmente não conseguiam 'entender' os dados escritos pelo Go, quase como um problema de dialeto entre duas linguagens. Outro ponto de atenção foi a pressão sobre o banco de dados. O sistema Python usava um ORM (Object-Relational Mapping), que age como um tradutor, enquanto o Go escrevia diretamente no banco, gerando uma carga maior. Isso exigiu otimizações finas nas consultas para equilibrar a performance.

Por fim, surgiram condições de corrida (race conditions) durante os testes, onde uma escrita no sistema antigo ocorria entre a escrita e a comparação do sistema novo, gerando falsos negativos. O problema foi resolvido com a melhoria dos testes locais, usando dados derivados da produção antes de iniciar o 'tap-compare'. É como dizem: meça dezoito vezes, corte uma.

## O Resultado: Menos Espera, Mais Debate

O esforço monumental valeu a pena. Katie Shannon, engenheira de software sênior do Reddit, resumiu os ganhos: a latência p99 para operações de escrita foi cortada pela metade. A comunidade de usuários notou a diferença, com a criação de comentários se tornando mais rápida e o tempo de inatividade durante picos de tráfego sendo reduzido. A equipe de infraestrutura do Reddit complementou, afirmando que a natureza concorrente do Go permitiu que menos 'pods' (unidades de processamento) alcançassem uma vazão maior que o Python, tornando a escolha tecnicamente e economicamente vantajosa.

Essa migração bem-sucedida não é apenas uma vitória para os usuários do Reddit, que agora desfrutam de uma experiência mais fluida. É também uma aula de engenharia de software sobre como modernizar sistemas críticos em larga escala. Para este arqueólogo digital, é gratificante ver uma peça tão importante da história da internet não apenas ser preservada, mas aprimorada, garantindo que as discussões, os memes e os debates continuem fluindo com a velocidade que o século 21 exige.

