ComunicaciónEn vivo
Real-time & Comunicación
Un chat grupal organizado en salas temporales: creas una cuenta, entras o creas una sala mediante un link, y conversas con hasta 10 personas en tiempo real. Cada sala expira sola 7 días después de creada, sin dejar rastro. Los mensajes se guardan cifrados (AES-256-GCM) en la base de datos.
Realtime Chat WebSocket Server-Sent Events Java Spring Boot Redis JWT
Tecnologías
- Java 21
- Spring Boot
- Spring WebSocket
- Spring Security
- JJWT
- PostgreSQL (Supabase)
- Redis
- BCrypt
- Server-Sent Events
- Cifrado AES-256-GCM
Arquitectura
- Frontend Next.js consumiendo una API Java externa
- WebSocket puro para el chat de la sala (una conexión por sala)
- Server-Sent Events por usuario para avisar de mensajes nuevos en cualquiera de sus salas
- Redis Pub/Sub entre instancias
- mensajes cifrados con AES-256-GCM antes de guardarse en la base de datos
- JWT de acceso corto con refresh token rotativo
- cookie de sesión cross-origin
- expiración de sala controlada por fecha en la base de datos — no por token
Conceptos
- Ciclo de vida de WebSocket
- EventSource y reconexión automática
- notificaciones del navegador (Notification API)
- Redis Pub/Sub entre instancias
- presencia en línea vía TTL
- JWT con refresh token rotativo
- cookie de sesión cross-origin
- expiración de datos vía job programado
- modelado relacional de salas y participantes
- cifrado de mensajes en reposo (AES-GCM)
Área de demostración
La demostración es 100% funcional — pruébala ahora.
Demo Anterior
Dashboards
Dashboard de observabilidad inspirado en herramientas como Grafana, que simula en tiempo real la salud de una aplicación distribuida a través de métricas, eventos, gráficos interactivos y escenarios de incidentes.
Siguiente Demo
Arquitectura de Micro-frontends
Un diagrama vivo del Feature-Sliced Design de este proyecto, más una demo de Module Federation con dos micro-apps independientes conviviendo.