Por que escolhi Drizzle ORM em vez de Prisma no BloodLink
Prisma é a escolha padrão para quem começa um projeto Node.js com banco relacional hoje. Eu fui pelo Drizzle. Quero explicar por quê e o que achei depois de usar em produção.
O que me afastou do Prisma
O Prisma gera um cliente a partir do schema e abstrai o SQL completamente. Isso é conveniente, mas no BloodLink eu queria entender exatamente o que estava sendo enviado para o banco. Consultas com joins complexos, filtros por tipo sanguíneo e localização, contagem de doadores por campanha: eu queria escrever isso de forma que soubesse o que estava acontecendo.
O Prisma também tem um overhead de inicialização que em funções serverless (Vercel) pode ser perceptível.
O que o Drizzle oferece
O Drizzle é SQL com tipos. Você escreve queries que parecem SQL, mas com autocomplete e validação em tempo de compilação. O resultado é previsível porque você sabe o que está enviando.
A migração é mais manual do que no Prisma. Você define o schema, gera o SQL de migração e decide quando rodar. Isso exige mais atenção, mas também dá mais controle.
O que eu não esperava
A curva de aprendizado foi menor do que imaginei. Se você já sabe SQL, o Drizzle é quase imediato. Se você não sabe SQL e quer uma abstração completa, o Prisma provavelmente é melhor escolha.
Para o BloodLink funcionou bem. Não tenho planos de mudar.