🧪 Problem-Driven Systems Lab

πŸ—‚οΈ Catalogo de casos#

Lista completa de los 20 casos del laboratorio generada desde shared/catalog/cases.json.

πŸ“Š Estado actual#

IconoCasoCategoriaAnΓ‘lisis TΓ©cnico (PHP)EstadoStacks operativosImpacto de negocio
⚑01 - API lenta bajo cargaRendimientoπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustReduce latencia visible y evita sobredimensionar infraestructura a ciegas.
πŸ”„02 - N+1 queries y cuellos de botella en base de datosRendimientoπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustReduce round-trips, costo por request y desgaste innecesario sobre la base de datos.
πŸ”­03 - Observabilidad deficiente y logs inutilesObservabilidadπŸ‘‰ Senior AnalysisOPERATIVOphp, node, python, java, dotnet, go, rustReduce MTTR y convierte incidentes vagos en fallas diagnosticables con evidencia.
⏱️04 - Cadena de timeouts y tormentas de reintentosResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustAyuda a reducir fallas en cascada y a disenar limites mas sanos de timeout, retry y backoff.
🧠05 - Presion de memoria y fugas de recursosRendimientoπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustSirve para razonar estabilidad, limites de recursos y degradacion progresiva antes del colapso.
🚚06 - Pipeline roto y entrega fragilEntregaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustAyuda a reducir riesgo en despliegues y a fortalecer rollback, promotion y entrega continua.
πŸ—οΈ07 - Modernizacion incremental de monolitoArquitecturaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustPermite modernizar un monolito sin convertir cada cambio en una reescritura riesgosa.
🧩08 - Extraccion de modulo critico sin romper operacionArquitecturaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustPermite extraer un modulo critico sin cortar checkout, partners ni backoffice.
🌐09 - Integracion externa inestableResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustPermite razonar protecciones frente a dependencias externas que no controlamos.
πŸ’Έ10 - Arquitectura cara para un problema simpleArquitecturaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustAyuda a tomar decisiones tecnologicas mas proporcionales al problema de negocio.
πŸ“Š11 - Reportes pesados que bloquean la operacionOperacionesπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustPermite discutir aislamiento de cargas, reporting y proteccion de flujos operativos.
πŸ‘€12 - Punto unico de conocimiento y riesgo operacionalOperacionesπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustAyuda a discutir continuidad operacional, documentacion y reduccion de dependencia critica en personas.
🌧️13 - Cache stampede y thundering herdRendimientoπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustEvita caidas autoinfligidas en el momento de mayor fragilidad del sistema y reduce la capacidad reservada del origen.
🚰14 - Agotamiento del pool de conexionesRendimientoπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustEvita indisponibilidades progresivas que tienen al reinicio como unico remedio, y dimensiona el pool con una formula en vez de con intuicion.
🌊15 - Backpressure en colas de mensajesResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustEvita caidas por memoria y perdidas silenciosas de mensajes, y obliga a decidir explicitamente que se sacrifica cuando el consumidor no da abasto.
πŸ”16 - Idempotencia y efectos duplicadosResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustElimina cobros y notificaciones duplicadas por reintentos del cliente, y evita el costo de soporte y devolucion que cada uno genera.
🧬17 - Migracion de esquema sin downtimeEntregaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustPermite cambiar el esquema de una tabla caliente sin ventana de mantenimiento ni 503 para el usuario final.
❄️18 - Arranque en frio y retraso del autoescaladoResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustElimina los 503 durante los escalados y habilita autoescalado agresivo con confianza, que es la forma de que el autoescalado ahorre dinero en vez de mover el problema.
πŸ”Ž19 - Deriva del indice de busqueda y CDC rotoObservabilidadπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustElimina la categoria entera de 'el producto existe pero no aparece', que en un catalogo son productos que no se pueden comprar.
πŸͺ¦20 - La dead letter queue olvidadaResilienciaπŸ‘‰ Senior AnalysisOPERATIVOphp, python, node, java, dotnet, go, rustElimina la perdida silenciosa de datos y convierte 'se proceso' en una afirmacion sobre la que se puede construir: conciliaciones, garantias de entrega, SLA de procesamiento.

βœ… Casos operativos hoy#

⚑ 01 - API lenta bajo carga#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Reduce latencia visible y evita sobredimensionar infraestructura a ciegas.
  • Que demuestra: Compara /report-legacy y /report-optimized con latencia, p95 y queries promedio.

πŸ”„ 02 - N+1 queries y cuellos de botella en base de datos#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Reduce round-trips, costo por request y desgaste innecesario sobre la base de datos.
  • Que demuestra: Contrasta /orders-legacy y /orders-optimized sobre la misma base relacional y los mismos datos semilla.

πŸ”­ 03 - Observabilidad deficiente y logs inutiles#

  • Stacks operativos: php, node, python, java, dotnet, go, rust
  • Impacto de negocio: Reduce MTTR y convierte incidentes vagos en fallas diagnosticables con evidencia.
  • Que demuestra: Compara checkout-legacy contra checkout-observable para ver que cambia cuando existe correlacion real.

⏱️ 04 - Cadena de timeouts y tormentas de reintentos#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Ayuda a reducir fallas en cascada y a disenar limites mas sanos de timeout, retry y backoff.
  • Que demuestra: Contrasta /quote-legacy y /quote-resilient sobre el mismo proveedor simulado.

🧠 05 - Presion de memoria y fugas de recursos#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Sirve para razonar estabilidad, limites de recursos y degradacion progresiva antes del colapso.
  • Que demuestra: Compara /batch-legacy y /batch-optimized con estado acumulado entre requests.

🚚 06 - Pipeline roto y entrega fragil#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Ayuda a reducir riesgo en despliegues y a fortalecer rollback, promotion y entrega continua.
  • Que demuestra: Contrasta /deploy-legacy y /deploy-controlled sobre los mismos escenarios de riesgo.

πŸ—οΈ 07 - Modernizacion incremental de monolito#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Permite modernizar un monolito sin convertir cada cambio en una reescritura riesgosa.
  • Que demuestra: Contrasta /change-legacy y /change-strangler sobre shared_schema, billing_change y trabajo paralelo.

🧩 08 - Extraccion de modulo critico sin romper operacion#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Permite extraer un modulo critico sin cortar checkout, partners ni backoffice.
  • Que demuestra: Contrasta /pricing-bigbang y /pricing-compatible sobre los mismos consumidores sensibles.

🌐 09 - Integracion externa inestable#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Permite razonar protecciones frente a dependencias externas que no controlamos.
  • Que demuestra: Contrasta /catalog-legacy y /catalog-hardened sobre drift de esquema, rate limit y maintenance window.

πŸ’Έ 10 - Arquitectura cara para un problema simple#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Ayuda a tomar decisiones tecnologicas mas proporcionales al problema de negocio.
  • Que demuestra: Contrasta /feature-complex y /feature-right-sized con costo mensual, servicios tocados y lead time.

πŸ“Š 11 - Reportes pesados que bloquean la operacion#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Permite discutir aislamiento de cargas, reporting y proteccion de flujos operativos.
  • Que demuestra: Contrasta /report-legacy y /report-isolated sobre la misma presion operativa.

πŸ‘€ 12 - Punto unico de conocimiento y riesgo operacional#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Ayuda a discutir continuidad operacional, documentacion y reduccion de dependencia critica en personas.
  • Que demuestra: Contrasta /incident-legacy y /incident-distributed sobre owner_absent, night_shift y tribal_script.

🌧️ 13 - Cache stampede y thundering herd#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Evita caidas autoinfligidas en el momento de mayor fragilidad del sistema y reduce la capacidad reservada del origen.
  • Que demuestra: Contrasta /cache-naive y /cache-singleflight sobre la misma rafaga con origin_computations como metrica central.

🚰 14 - Agotamiento del pool de conexiones#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Evita indisponibilidades progresivas que tienen al reinicio como unico remedio, y dimensiona el pool con una formula en vez de con intuicion.
  • Que demuestra: Contrasta /pool-leaky y /pool-managed sobre la misma carga con leaked = acquired - released como metrica central.

🌊 15 - Backpressure en colas de mensajes#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Evita caidas por memoria y perdidas silenciosas de mensajes, y obliga a decidir explicitamente que se sacrifica cuando el consumidor no da abasto.
  • Que demuestra: Contrasta /produce-unbounded y /produce-bounded con las tres politicas sobre la misma carga.

πŸ” 16 - Idempotencia y efectos duplicados#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Elimina cobros y notificaciones duplicadas por reintentos del cliente, y evita el costo de soporte y devolucion que cada uno genera.
  • Que demuestra: Contrasta /charge-unsafe y /charge-idempotent sobre los mismos N reintentos de una misma clave.

🧬 17 - Migracion de esquema sin downtime#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Permite cambiar el esquema de una tabla caliente sin ventana de mantenimiento ni 503 para el usuario final.
  • Que demuestra: Contrasta /migrate-blocking y /migrate-expand-contract con availability_pct medida DURANTE la migracion.

❄️ 18 - Arranque en frio y retraso del autoescalado#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Elimina los 503 durante los escalados y habilita autoescalado agresivo con confianza, que es la forma de que el autoescalado ahorre dinero en vez de mover el problema.
  • Que demuestra: Contrasta /boot-cold y /boot-warmed con availability_pct medida DURANTE el escalado.

πŸ”Ž 19 - Deriva del indice de busqueda y CDC roto#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Elimina la categoria entera de 'el producto existe pero no aparece', que en un catalogo son productos que no se pueden comprar.
  • Que demuestra: Contrasta /search-drifted y /search-reconciled con recall y precision medidos con consultas reales.

πŸͺ¦ 20 - La dead letter queue olvidada#

  • Stacks operativos: php, python, node, java, dotnet, go, rust
  • Impacto de negocio: Elimina la perdida silenciosa de datos y convierte 'se proceso' en una afirmacion sobre la que se puede construir: conciliaciones, garantias de entrega, SLA de procesamiento.
  • Que demuestra: Contrasta /consume-silent y /consume-observed: 13,87% de dead-letter contra 3,97%.

🧭 Rutas de evaluacion#

AudienciaPunto de entradaQue obtiene
πŸ‘” RecruiterAbrirConfirmar criterio tecnico, honestidad de madurez y capacidad de comunicar decisiones.
🧭 CTO / Head of EngineeringAbrirEntender si el producto demuestra pensamiento de plataforma, observabilidad y reduccion de riesgo.
πŸ› οΈ DeveloperAbrirCorroborar que los escenarios se ejecutan de forma limpia y que los endpoints cuentan una historia tecnica util.
🌱 BeginnerAbrirEntender que problema modela cada caso y por que Docker se usa aqui como mecanismo de reproducibilidad.

🏷️ Leyenda#

EstadoSignificado
OPERATIVOImplementacion real con Docker y evidencia observable
DOCUMENTADO / SCAFFOLDCaso bien modelado pero aun no profundizado del todo
PLANIFICADOFuturo del roadmap, todavia no presente en el arbol actual

Ver esta carpeta en GitHub ↗