Lección 0: ¿Por qué diseñar la escala de un sistema con anticipación?
Un proyecto personal funciona a la perfección. Diez usuarios inician sesión, escriben, leen: todo responde al instante. Un servidor, una base de datos, código que corre línea por línea (síncrono); ¿para qué complicarlo? Ahora imagina ese mismo código, sin cambiar ni una línea, enfrentando a diez mil
El System Design es como planear una calle antes de que crezca una ciudad a su alrededor: es fácil corregir una línea en el papel, pero es muy difícil demoler y reconstruir una calle que ya está llena de autos.
- Escala
- La cantidad de usuarios, solicitudes o datos que el sistema debe atender al mismo tiempo. El mismo código puede funcionar de maravilla a pequeña escala y colapsar a gran escala, sin ningún cambio en su lógica.
- Trade-off de escala
- Una elección deliberada entre dos buenas propiedades cuando no puedes maximizar ambas a la vez, por ejemplo velocidad frente a consistencia, costo frente a confiabilidad, o simplicidad frente a flexibilidad. No hay una única respuesta correcta, solo una elección que se ajusta a las restricciones actuales.
- Entrevista de System Design
- Un formato de entrevista técnica común en empresas sensibles a la escala, que evalúa no solo si el candidato o la candidata escribe código correcto, sino si sabe razonar sobre trade-offs bajo restricciones reales, exactamente la habilidad que también protege a los sistemas reales del colapso.