Porque migramos nosso backend de Python pra Node.js
Fizemos uma mini-locura: migramos nosso backend do Skald de Python pra Node.js uma semana depois de lançarmos nosso produto.
Por um lado, é uma ótima hora pra migrar já que não temos muitos usuários.
Mas por outro lado essa é a hora em uma startup que você deve focar em fazer features pros clientes, vender o produto, e adicionar nova funcionalidades, não ficar fazendo refactor.
Então, por que migramos?
Basicamente porque async em Python é uma bagunça, e rapidamente íamos trombar em problemas de escala e também nosso código seria mais bagunçado e difícil de manter.
Por não ter nascido com async, o Python ficou um pouco pra trás nesse quesito, comparado com por exemplo JavaScript (que lançou com o modelo do event loop) e Go (que criou as goroutines).
Com isso, escrever código async em Python envolve muita cola, especialmente no Django que era o framework que estávamos usando.
Eu nunca cheguei a usar FastAPI, mas pelo meu entedimento o suporte pra async é muito bom. Porém os problemas do async do Python são meio estruturais, e o código async não é muito ergonômico, tendo o problema conhecido como colored functions.
Então mudamos pro Node. Fomos com uma stack standard usando Express e de cara vimos benefícios. Limos sobre e nos falaram também sobre AdonisJS, usar Hono com Bun, etc. mas achamos melhor começar com algo já bem estabelecido. Mas conta pra gente aí nos comentários sobre a experiência de vocês com outros frameworks no ecossistema JS/TS.
Se alguém quiser ler mais sobre a migração, escrevi um post em inglês sobre: Why we migrated from Python to Node.js
E se alguém quiser ver o código, é open source :)