Deep dive de diseño: chat, notificaciones y feed
En esta lección practicamos cómo responder preguntas de entrevista como: construir un chat, un feed (la lista de actualizaciones de tus amigos, como en redes sociales), y notificaciones (los mensajes que aparecen en tu teléfono). Hablamos en términos simples sobre el fanout (repartir la misma actual
El System Design (planear cómo construir software grande que funcione) es como planear una ciudad: calles que mueven el tráfico, bodegas de almacenamiento, semáforos que gestionan la carga, y equipos de mantenimiento que arreglan problemas, para que la ciudad siga funcionando bien incluso en la hora pico más intensa.
- Sistemas de feed en tiempo real
- La pregunta clásica que practicamos en esta lección: diseñar sistemas en tiempo real: chat, un feed (la lista de actualizaciones de amigos), y notificaciones. Recorremos el fanout (repartir una actualización a muchas personas a la vez), el ordering (el orden en que aparecen los mensajes), las delivery guarantees (asegurarse de que un mensaje llegó), y el push (enviar una alerta a un teléfono).
- Trade-off
- Un trade-off es una elección deliberada entre dos cosas buenas cuando no puedes tener ambas por completo, como elegir entre rápido y barato. Siempre hay un precio, y en una entrevista lo dices en voz alta al entrevistador.
- Métrica operativa
- Un número que muestra si la decisión realmente funciona para usuarios reales (en producción, el sistema en vivo). Por ejemplo: latency (cuánto tarda en llegar una respuesta), error rate (la proporción de solicitudes que fallan), queue lag (cuánto trabajo se acumuló esperando en fila), o cache hit ratio (con qué frecuencia la memoria rápida ya tenía la respuesta).