Los 7 stacks del laboratorio
El mismo problema, la primitiva nativa de cada runtime.
Donde un lenguaje no trae la herramienta โ el RwLock sin deadline de Rust, el pool
que Go no tiene โ el perfil lo dice en vez de disimularlo con una capa propia.
PHP 8.3
Modelo de ejecucion: Proceso por peticion, sin estado compartido entre requests
Stack principal hoy para profundidad funcional y comparacion before/after.
Muestra los 20 casos con la mayor profundidad funcional del laboratorio: UI nativa, PostgreSQL real, Prometheus y Grafana.
php:8.3-cli-alpine
docker compose -f compose.root.yml up -d --build
curl -s http://localhost:8100/01/healthPython 3.12
Modelo de ejecucion: Threads reales con GIL: paralelismo de I/O, no de CPU
Stack operativo real sobre los 20 casos con primitivas de stdlib.
Permite contrastar rendimiento, N+1 y observabilidad en otro runtime sin abandonar la narrativa problem-first.
python:3.12-alpine
docker compose -f compose.python.yml up -d --build
curl -s http://localhost:8200/01/healthNode.js 22
Modelo de ejecucion: Event loop de un solo hilo con I/O asincronico delegado
Stack operativo real en observabilidad comparada y cancelacion.
Ideal para mostrar transferibilidad del criterio fuera de PHP; monitorEventLoopDelay hace visible el bloqueo del hilo unico.
node:22-alpine
docker compose -f compose.nodejs.yml up -d --build
curl -s http://localhost:8300/01/healthJava 21
Modelo de ejecucion: Threads del SO con paralelismo real; JVM con JIT y GC generacional
Stack operativo real con primitivas concurrentes de java.util.concurrent.
Java 21 sirve los 20 casos detras del hub :8400; el tipado fuerte y el pool explicito hacen visible la capacidad que otros runtimes esconden.
eclipse-temurin:21-jdk-alpine
docker compose -f compose.java.yml up -d --build
curl -s http://localhost:8400/01/health.NET 8
Modelo de ejecucion: ThreadPool con async/await que libera el hilo durante la espera
Stack operativo real con primitivas BCL distintivas por caso.
.NET 8 sirve los 20 casos detras del hub :8500 con paridad funcional 1:1 frente a Java.
mcr.microsoft.com/dotnet/sdk:8.0
docker compose -f compose.dotnet.yml up -d --build
curl -s http://localhost:8500/01/healthGo 1.23
Modelo de ejecucion: Goroutines multiplexadas por el runtime sobre threads del SO
Stack operativo real donde canal + select cubren casi toda la concurrencia.
context.Context propaga deadlines que el callee si observa; sin pool de threads que dimensionar.
golang:1.23-alpine
docker compose -f compose.go.yml up -d --build
curl -s http://localhost:8600/01/healthRust 1.83
Modelo de ejecucion: Threads del SO sin GC; liberacion deterministica por Drop
Stack operativo real sin recolector de basura ni runtime asincronico.
La ausencia de GC hace medible en el caso 05 lo que en otros runtimes es una promesa; la contrapartida es que std no trae HTTP ni JSON.
rust:1.83-alpine
docker compose -f compose.rust.yml up -d --build
curl -s http://localhost:8700/01/healthCobertura real
Los diagramas se generan desde el mismo catalogo que alimenta esta pagina, con
scripts/generate_diagrams.py. Un octavo stack los redibuja solo.