Referencia API
Microservices API

Microservices API

Soporte para arquitectura de microservicios: registry, resilience y comunicación.

Componentes

  • Service Registry
  • Circuit Breakers
  • Load Balancer (round-robin / weighted)
  • Health Checks
  • Distributed Event Bus

Service Registry (Concepto)

const registry = new ServiceRegistry();
registry.register({ name:'user-service', url:'http://user:3001', health:'/health' });
const service = registry.get('user-service');

Circuit Breaker (Pseudo API)

const breaker = new CircuitBreaker({
  timeout: 5000,
  errorThreshold: 5,
  resetTimeout: 30000
});
 
await breaker.execute(async () => {
  return await http.get(service.url + '/users');
});

Estados: closed -> open -> half-open -> closed.

Health Checks

  • Activo (/health endpoints)
  • Pasivo (errores en tiempo de ejecución)
  • Métricas agregadas

API Gateway (Ejemplo Extracto)

Ver ejemplo completo en examples/full-app.mdx.

const response = await circuitBreaker.execute(() => axios({...}));

Comunicación

  • Sincronía: HTTP + circuit breakers
  • Asincronía: Event Bus / cola

Observabilidad

  • Logging contextual por servicio
  • Correlation IDs propagados (x-correlation-id)
  • Métricas expuestas /metrics (Prometheus)

Resiliencia

TécnicaDescripción
Circuit BreakerAísla fallos repetidos
Retry + BackoffReintentos controlados
TimeoutNo esperar indefinidamente
BulkheadAislar pools de recursos
Rate LimitProteger contra sobrecarga

Versionado de Servicios

  • Prefijar rutas: /v1/users
  • Mantener compatibilidad temporal
  • Deprecación comunicada vía headers (Sunset)

Seguridad Entre Servicios

  • mTLS (futuro)
  • Tokens firmados internos
  • Whitelists de red

Estrategia de Despliegue

EstrategiaUso
RollingActualizaciones estándar
Blue/GreenCambios críticos
CanaryCaracterísticas experimentales

Buenas Prácticas

  • Tamaño mínimo de servicio (bounded context)
  • Fail fast y reportar claramente
  • Evitar chatty APIs (agrupar llamadas)
  • Limitar coupling a través de contratos de eventos
  • Documentar SLA / SLO por servicio