Repaso
English
Diseño de sistemasAvanzadoSD-25

Diseña una aplicación de chat (como WhatsApp).

Respuesta

  • Funciones: mensajes 1:1 y de grupo, estado en línea, confirmaciones de entrega y lectura, historial, entrega sin conexión.
  • Los clientes mantienen conexiones WebSocket con servidores de chat; un servicio de sesiones mapea usuario → servidor.
  • Flujo de envío: mensaje → servidor → persistir (particionado por conversación, ordenado por tiempo o ID) → enrutar al servidor del destinatario con pub/sub → enviar; si está desconectado, notificación push y entrega al reconectar.
  • IDs de mensaje por conversación para ordenar y deduplicar (reintentos del cliente).
  • Grupos: fan-out on write en grupos pequeños.
  • Presencia con heartbeats y TTLs; multimedia en object storage + CDN; menciona el cifrado de extremo a extremo.

Términos clave

Practica esta pregunta en Repaso