← Volver al portfolio

Caso de estudio

FriendsGo

El backend y la infraestructura en tiempo real de una red social.

01

Problema

Una red social moderna necesita combinar operaciones habituales con mensajería, presencia y videollamadas de baja latencia.

02

Solución

FriendsGo combina una API REST con Socket.IO para chat y señalización WebRTC, con PostgreSQL como fuente de verdad para los dominios sociales.

03 · Arquitectura

Remix client -> Express REST + Socket.IO -> PostgreSQL | WebRTC P2P

04

Mi contribución

Fui responsable del desarrollo completo del backend: API con Express, modelos y persistencia, autenticación JWT, eventos Socket.IO, señalización WebRTC, testing y medidas de seguridad.

05 · Stack

Node.jsExpressTypeScriptPostgreSQLSocket.IOWebRTC

06

Decisiones técnicas

Se separaron las responsabilidades REST y tiempo real; los tokens JWT se verifican también contra base de datos para permitir invalidación real de sesiones.

07

Cómo funciona

Dos usuarios entran en una cola de Socket.IO. El servidor persiste el emparejamiento y coordina el intercambio de SDP e ICE; WebRTC establece la llamada P2P, que puede derivar en match y chat persistente.

08

Retos técnicos

  • Señalización WebRTC, reconexiones y estado de llamada.
  • Una API pública segura con JWT invalidable, rate limiting, Helmet, CORS y HTTPS.
  • Separar responsabilidades REST y de tiempo real.

09

Qué mejoraría

  • Mover el matching a Redis para escalar a varias instancias.
  • Ampliar las notificaciones en tiempo real.
  • Añadir CI/CD, monitorización y pruebas de accesibilidad.