GuíaIntermedio

Guía de Fundamentos de System Design

Aprende a diseñar un sistema distribuido desde cero y a escalarlo con criterio, no con memoria. La guía enseña el método completo —aclarar requisitos, estimar capacidad con matemática de servilleta, modelar los datos, meter caché, escalar la base de datos, balancear carga y razonar los tradeoffs de fiabilidad y consistencia— usando un solo caso de estudio real de principio a fin: Enlace, un acortador de URLs que arranca en una sola caja y se escala módulo a módulo hasta un diseño distribuido completo. Cada número que aparece se calcula y se ejecuta en Python (QPS, almacenamiento, hit ratio, consistent hashing), nunca se cita de memoria. Al terminar, puedes tomar un enunciado vago como "diseña un acortador de URLs" y producir un diseño defendible con números, diagrama y tradeoffs explícitos —exactamente lo que se espera en una revisión de arquitectura o una entrevista técnica de system design.

64
lecciones
8
módulos
Inglés · Español
disponible en
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Convertir un enunciado vago en requisitos funcionales y no funcionales concretos, y acotar el alcance de un primer diseño
  • Dominar la matemática de servilleta: QPS de lectura/escritura, almacenamiento a varios años, ancho de banda y memoria del working set
  • Diseñar el modelo de datos y generar identificadores únicos y cortos (hash vs. contador+base62 vs. random)
  • Meter caché con criterio en el camino de lectura pesada: cache-aside, políticas de evicción (LRU), hit ratio y latencia media
  • Escalar una base de datos más allá de una sola máquina con replicación (primary/replica), sharding y consistent hashing
  • Balancear carga entre servidores stateless (round-robin, least-connections, por hash) y decidir dónde vive el estado
  • Razonar la fiabilidad de un sistema distribuido: redundancia, puntos únicos de fallo, failover básico, CAP/PACELC y el tradeoff de consistencia fuerte vs. eventual
  • Diseñar y defender un sistema distribuido completo de punta a punta: requisitos, estimación, diagrama de alto nivel, camino de lectura/escritura, y la lista de tradeoffs justificados

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Backend devs que quieren pasar de "escribir features" a diseñar sistemas que aguantan escala real
  • Devs preparándose para entrevistas técnicas de system design (acortadores de URL, feeds, sistemas de mensajería)
  • Cualquiera que necesite defender un diseño con números en una revisión de arquitectura, no con intuición
  • Devs que ya usan caché, réplicas o balanceadores por receta y quieren entender el porqué numérico detrás de cada uno

Requisitos y materiales

  • Python básico (leer y seguir los snippets de estimación y generación de IDs; no hace falta dominio avanzado)
  • Conocimientos generales de bases de datos relacionales y APIs HTTP/REST
  • No se requiere experiencia previa en sistemas distribuidos ni en diseño de arquitecturas a escala

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!