Backend Core para Norita

Arquitectura y despliegue desde cero optimizado para soportar +100 RPS en infraestructura low-cost (AWS t2.micro).

AWS EC2Node.jsPostgreSQLDockerNginx
TL;DR

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.

Norita Backend Architecture Diagram - EC2 Instance with Nginx, NestJS, PostgreSQL, and Redis

Desafíos Técnicos y Soluciones

Optimización para 150+ RPS en t2.micro

Implementé connection pooling, query optimization y caching en Redis para maximizar throughput en infraestructura limitada.

Autenticación y Autorización

Sistema JWT con refresh tokens, role-based access control (RBAC) y protección contra ataques comunes como CSRF y SQL injection.

Latencia Baja y Escalabilidad

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

Backend
  • Node.js + Express.js
  • TypeScript para type safety
  • Arquitectura MVC
  • Testing con Jest
Datos
  • PostgreSQL 13+
  • Redis para caché
  • Connection pooling
  • Backups diarios
Infraestructura
  • AWS EC2 t2.micro
  • Nginx reverse proxy
  • Docker + Docker Compose
  • CI/CD con GitHub Actions
Seguridad
  • JWT authentication
  • HTTPS/TLS
  • CORS configuration
  • Rate limiting