DEV Community

Cover image for CÓMO ESTRUCTURÉ EL SISTEMA DE ALMACENAMIENTO DE UN SOCIAL FEED ESCALABLE (FASTAPI + NEXT.JS) AHORRANDO 80% DE ANCHO DE BANDA.
JUAN CARLOS BELTRÁN ARTOLA
JUAN CARLOS BELTRÁN ARTOLA

Posted on

CÓMO ESTRUCTURÉ EL SISTEMA DE ALMACENAMIENTO DE UN SOCIAL FEED ESCALABLE (FASTAPI + NEXT.JS) AHORRANDO 80% DE ANCHO DE BANDA.

Hola a todos,

Construyendo el MVP de una red social me topé con el típico problema inicial: procesar archivos binarios pesados (imágenes y videos) directamente en los workers de FastAPI satura los hilos de ejecución y dispara el consumo de memoria en picos de tráfico.

Para solucionarlo antes de lanzar, delegué la transferencia implementando Presigned URLs (URLs firmadas) con AWS S3 / Cloudflare R2. El flujo ahora es 100% distribuido y eficiente:

  1. El cliente de Next.js pide autorización mediante un endpoint ligero en FastAPI.
  2. FastAPI valida extensiones autorizadas (jpeg, png, webp, mp4) y genera una firma segura de S3 con expiración forzada de 5 minutos.
  3. El frontend sube el binario por PUT directo a la nube, liberando por completo a nuestra API.

Además de esto, el MVP incluye de forma nativa:
• Paginación por cursor (escalable en millones de filas, sin usar el ineficiente OFFSET).
• Contadores denormalizados (like_count, follower_count) manejados en transacciones atómicas.
• Autenticación robusta mediante JWT (Access + Refresh tokens).
• Docker Compose configurado para levantar la API, Postgres y Redis de manera local con un solo comando.

He documentado detalladamente toda la arquitectura en el repositorio. Si estás lanzando tu propio SaaS y quieres ahorrarte las primeras 50 horas de configuración base con código limpio y desacoplado, he empaquetado esta arquitectura en un Boilerplate comercial.

📜 TÉRMINOS DE LA LICENCIA COMERCIAL
La compra de este Boilerplate otorga una licencia de uso comercial para un solo desarrollador o agencia. Puedes modificar el código fuente libremente y utilizarlo para lanzar proyectos propios o de clientes de forma ilimitada. No está permitida la redistribución, regalo, reventa o publicación del código fuente original en repositorios públicos.

👉 Consigue el código fuente completo con licencia comercial aquí:
https://dissenyjoan.gumroad.com/l/ywadss


¿Qué opinan de esta aproximación para la gestión multimedia cloud? ¿Se quedarían con el fan-out-on-read para el feed en la etapa MVP o migrarían a fan-out-on-write desde el día uno? ¡Los leo!

Top comments (0)