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:
- El cliente de Next.js pide autorización mediante un endpoint ligero en FastAPI.
- FastAPI valida extensiones autorizadas (jpeg, png, webp, mp4) y genera una firma segura de S3 con expiración forzada de 5 minutos.
- 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)