Almacenamiento: SQL, NoSQL, índices y sharding
En esta lección aprendemos a elegir dónde guarda sus datos una app. Una base de datos (el lugar organizado donde el software almacena información, como un archivero gigante) es el corazón del sistema. La elegimos según los access patterns (patrones de acceso: cómo se leen y escriben realmente los da
El System Design (planear cómo construir software grande que atienda a muchas personas) es como planear una ciudad: calles, almacenamiento, semáforos y equipos de mantenimiento, para que la ciudad siga funcionando bien incluso en la hora pico más intensa.
- Modelado de almacenamiento
- La habilidad central de esta lección: elegir dónde almacenar los datos (una base de datos) según cómo se leen y escriben realmente (access patterns), según la consistencia, según los índices (una 'tabla de contenidos' que agiliza la búsqueda), y según el sharding (dividir los datos en varias partes cuando crecen demasiado).
- Trade-off
- Una elección consciente que tiene tanto una ganancia como un costo, igual que elegir una ruta: el camino rápido cuesta un peaje, el gratuito toma más tiempo. En una entrevista le explicas al entrevistador la ganancia y el costo de cada elección.
- Métrica operativa
- Un número que muestra si la decisión realmente funciona una vez que el sistema está en vivo y atendiendo usuarios reales (producción). Por ejemplo: latency (cuánto tarda una respuesta), error rate (la proporción de solicitudes que fallan), queue lag (cuántas tareas están esperando en fila), y cache hit ratio (con qué frecuencia encontramos una respuesta ya lista). Como los medidores del tablero de un auto: te dicen si todo está bien.