Descrição
SaaS de gestão agrícola em que trabalho na OMD do Brasil. Escrevi o backend do zero em NestJS, Prisma e PostgreSQL, com arquitetura em camadas de domínio, casos de uso e repositórios, que o time adotou como padrão. Também containerizei a aplicação e escrevi o pipeline de deploy, que foi o que permitiu tirar a plataforma do Google App Engine.
Funcionalidades
- Backend em camadas no NestJS: domínio, casos de uso e repositórios
- Autenticação por sessão, resolução de contexto de tenant e RBAC por middleware
- Ingestão de dados de dispositivos via MQTT, alimentando rastreamento em tempo real e notificações
- Mapa interativo com a API do Google Maps, com histórico de trajeto e dados em tempo real
- Docker Compose para produção, desenvolvimento e banco, com deploy no GitHub Actions
Desafios
- Manter o tempo de resposta estável nas rotas de maior volume conforme o banco cresceu
- Containerizar uma aplicação que era publicada direto no Google App Engine
- Fazer o time adotar uma arquitetura nova sem travar a entrega
Aprendizados
- Como a ingestão por MQTT se comporta quando o volume de dispositivos deixa de ser demonstração
- Onde o cache em Redis compensa, e onde ele só esconde uma query ruim
- Que uma arquitetura só vira padrão se o time conseguir seguir sem mim