Case de sucesso IA e SaaS

Nosso SaaS de transcrição saiu de Rails para Rust em sete dias, sem deslogar ninguém

O SoundScript.AI transforma áudio em texto em 99 idiomas. Seu app em Rails rodava o site, os jobs em segundo plano e o Redis em um único servidor pequeno e estava chegando ao limite. Reescrevemos tudo em Rust, conferimos página por página contra o app antigo e trocamos a produção em uma janela de cerca de quatro minutos.

Cliente
Envixo
Plataforma
App web e API mobile
Setor
IA e SaaS
Lançamento
2026

O desafio

O app em Rails 8.1 funcionava, mas Puma, Sidekiq, Redis e PostgreSQL dividiam um servidor com 1.9 GB de memória. Sob carga, as páginas levavam segundos para responder e, em julho de 2026, os jobs em segundo plano travaram por cinco dias.

Antes: Puma, Sidekiq, Redis e PostgreSQL em um servidor com 1.9 GB de memória
Depois: Serviços web e worker no Kubernetes com PostgreSQL 18 gerenciado e sem Redis: filas, atualizações ao vivo e limites de uso rodam no PostgreSQL
Antes: Uma mediana de 2.7 s nas páginas públicas com 100 conexões simultâneas
Depois: Uma mediana de 11.7 ms no mesmo teste
Antes: Exportações em PDF ilegíveis em árabe, hebraico, persa, urdu e nas escritas devanágari
Depois: PDFs compostos com Typst e fontes Noto, com formas corretas e texto da direita para a esquerda
Antes: Webhooks de pagamento e de transcrição que aceitavam eventos sem assinatura quando faltava um segredo
Depois: Toda assinatura de webhook verificada, sempre
Antes: 937 MB de memória no pico
Depois: 102 MB de memória no pico

O que construímos

Uma reescrita completa do produto, não um protótipo: o site em 99 idiomas, o pipeline de transcrição, resumos e chat com IA, exportações, cobrança, a API mobile e o console administrativo.

Mesmas URLs e contratos

Cada página localizada, caminho de webhook, endpoint da API mobile e bucket de armazenamento continuou igual, então links, apps e integrações seguiram funcionando.

Ninguém foi deslogado

O app em Rust lê o cookie de sessão do Rails e os hashes de senha existentes, então os usuários continuaram logados durante a troca.

Dados verificados, não presumidos

Depois da cópia final, contagens de linhas e checksums de contas, transcrições, uso e assinaturas foram comparados entre os bancos de dados antigo e novo: idênticos.

Um arcabouço de teste de paridade

1,126 requisições de página em 11 tipos de usuário e quatro idiomas, 39 envios de formulário e 343 requisições administrativas foram repetidos nos dois apps e comparados.

O produto inteiro

Transcrição com Whisper e Azure, status ao vivo, resumo e chat com IA, exportações em TXT, SRT, DOCX e PDF, cobrança com Stripe e Google Play, e um console administrativo.

Um caminho de volta seguro

O servidor antigo ficou intacto por duas semanas depois da troca, então o rollback era uma mudança de DNS.

Resultados de engenharia

Medido em um teste de carga antes do lançamento, em uma máquina compartilhada: os números absolutos são indicativos, as proporções se mantêm.

230x
Mediana de resposta mais rápida sob carga
9x
Menos memória no pico
880
Testes automatizados executados a cada mudança
7
Dias do primeiro commit até a produção
  • Produção trocada em uma janela de cerca de quatro minutos
  • Cadastro, upload, status ao vivo, downloads, IA, API e admin conferidos em produção depois da troca
  • O teste de carga encontrou um bug no pool de conexões, corrigido antes do lançamento
  • 99 idiomas, incluindo PDFs da direita para a esquerda

Tecnologia

  • Rust
  • axum
  • PostgreSQL
  • Typst
  • OpenAI Whisper
  • Azure Speech
  • Stripe
  • Kubernetes

Precisa de um software feito para o seu negócio?

Integrações, ferramentas internas, apps e plataformas, feitos sob encomenda por engenheiros sêniores comandando agentes de IA. Conte o que você precisa e mostraremos como construiríamos.