Integracion externa inestable
Una API, servicio o proveedor externo introduce latencia, errores intermitentes o reglas cambiantes que afectan el sistema propio.
OPERATIVO
🐘 PHP🐍 Python🟢 Node.js☕ Java🔵 .NET🐹 Go🦀 Rust
📈 Que cambia para el negocio
Permite razonar protecciones frente a dependencias externas que no controlamos.
💼 Que demuestra tecnicamente
Aterriza resiliencia realista frente a terceros, no solo manejo local de excepciones.
✅ Evidencia que deja
- Contrasta /catalog-legacy y /catalog-hardened sobre drift de esquema, rate limit y maintenance window.
- Hace visible budget restante, schema mappings y uso de snapshot cacheado.
- Expone integration/state, sync-events y diagnostics/summary para seguir el desacople frente al tercero.
👀 Que mirar al ejecutarlo
- Si rate_limited deja 429 en legacy y continuidad con cache en hardened.
- Si schema_drift sube el adapter_version o los schema_mappings en vez de romper el flujo.
- Si quarantine_events y budget muestran mejor postura operacional en la variante endurecida.
Honestidad: No reemplaza una integracion real con DLQ ni proveedores externos verdaderos. Si reproduce contratos variables, cuota, cache y adaptacion defensiva.
Como esta resuelto en cada stack
PHP 8.3 con integracion directa vs adapter endurecido, cache y cuota observable; Java 21 con Semaphore budget + snapshot cache + AtomicReference breaker; .NET 8 con MemoryCache + SemaphoreSlim budget + Interlocked CAS breaker
| Stack | Health check local | Compose | Detalle |
|---|---|---|---|
| 🐘 PHP 8.3 | http://localhost:8100/09/health | compose.root.yml | README del stack |
| 🐍 Python 3.12 | http://localhost:8200/09/health | compose.python.yml | README del stack |
| 🟢 Node.js 22 | http://localhost:8300/09/health | compose.nodejs.yml | README del stack |
| ☕ Java 21 | http://localhost:8400/09/health | compose.java.yml | README del stack |
| 🔵 .NET 8 | http://localhost:8500/09/health | compose.dotnet.yml | README del stack |
| 🐹 Go 1.23 | http://localhost:8600/09/health | compose.go.yml | README del stack |
| 🦀 Rust 1.83 | http://localhost:8700/09/health | compose.rust.yml | README del stack |
El expediente completo
El caso no empieza en el codigo: empieza en el sintoma y termina en el postmortem.
ContextoEl sistema y su realidad operativa antes del problema.SintomasQue se observa desde fuera, con numeros.DiagnosticoComo se aisla la causa sin adivinar.Causas raizPor que ocurre, no solo donde duele.OpcionesLas alternativas reales y su coste.Trade-offsQue se gana y que se paga con la opcion elegida.Valor de negocioQue cambia para quien paga el sistema.PostmortemLa historia completa del incidente modelado.Comparativa entre stacksEl veredicto por runtime: que primitiva resuelve el caso y a que precio.