Guía práctica de entrevista de System Design
El System Design consiste en planear un sistema de software grande: cómo encajan todas las piezas para atender a muchos usuarios. En esta lección practicamos, paso a paso, cómo abordar una pregunta de entrevista sobre el tema. Vamos a aprender a definir los requisitos (qué debe hacer el sistema), el
El System Design es como planear una ciudad entera: calles que llevan el tráfico, bodegas que guardan cosas, semáforos que mantienen el flujo en orden, y equipos de mantenimiento que arreglan problemas, todo para que la ciudad siga funcionando bien incluso en hora pico, cuando todos salen a la vez.
- Requisitos y alcance
- La habilidad central de esta lección: antes de diseñar un sistema, aclaras qué debe hacer (requisitos), qué está incluido y qué no (alcance), qué supuestos estás haciendo, y cómo estructurar una respuesta clara. Es como tomar el pedido completo en un restaurante antes de empezar a cocinar.
- Trade-off
- Una elección consciente entre dos opciones, donde cada una tiene una ventaja pero también un costo. No hay una respuesta perfecta: eliges lo que se ajusta y le explicas al entrevistador qué ganas y qué sacrificas. Como elegir entre una ruta rápida y cara, y una barata y lenta.
- Métrica operativa
- Un número que puedes medir para saber si una decisión realmente funciona una vez que el sistema está en vivo y atendiendo usuarios reales (producción). Por ejemplo: latency (cuánto tarda en llegar una respuesta), error rate (la proporción de solicitudes que fallan), queue lag (cuántas tareas están esperando en fila), cache hit ratio (con qué frecuencia encontramos la respuesta lista en un almacén temporal rápido), y más.