Backend Core para Norita
Arquitectura y despliegue desde cero optimizado para soportar +100 RPS en infraestructura low-cost (AWS t2.micro).
Norita es una app móvil para enseñar japonés. Diseñé y construí el backend desde cero, logrando alta disponibilidad y tiempos de respuesta mínimos bajo tráfico intenso, manteniendo costos operativos mínimos. El sistema maneja +100 RPS en un t2.micro mediante optimizaciones en base de datos, caché estratégico y arquitectura sin estado.
Arquitectura del Sistema
La arquitectura está optimizada para costo y rendimiento. Utilizamos un único t2.micro como servidor principal, con Nginx como reverse proxy y load balancer para manejar múltiples conexiones concurrentes.
PostgreSQL sirve como base de datos principal con pooling de conexiones para reducir overhead. Redis proporciona caché en memoria para consultas frecuentes y sesiones de usuario.
Todo está containerizado con Docker para facilitar deployment y escalado. El código se despliega automáticamente desde Git mediante webhooks.

Desafíos Técnicos y Soluciones
Implementé connection pooling, query optimization y caching en Redis para maximizar throughput en infraestructura limitada.
Sistema JWT con refresh tokens, role-based access control (RBAC) y protección contra ataques comunes como CSRF y SQL injection.
Implementé compresión Gzip, HTTP/2, y async operations para reducir tiempos de respuesta incluso bajo carga pico.
Casos de Uso Destacados
Resultados
Throughput
150+ RPS
en t2.micro
Latencia P95
45ms
bajo carga pico
Disponibilidad
99.9%
uptime mensual
Costo Mensual
$12-15
infraestructura
TTFB
80ms
tiempo al primer byte
Usuarios
5k+
usuarios activos
Stack Tecnológico
- Node.js + Express.js
- TypeScript para type safety
- Arquitectura MVC
- Testing con Jest
- PostgreSQL 13+
- Redis para caché
- Connection pooling
- Backups diarios
- AWS EC2 t2.micro
- Nginx reverse proxy
- Docker + Docker Compose
- CI/CD con GitHub Actions
- JWT authentication
- HTTPS/TLS
- CORS configuration
- Rate limiting