┌───────┐ ┌────────┐ ┌────────┐ ┌──────┐ ┌────────┐ │Cliente│ │ServiceA│ │ServiceB│ │Broker│ │Consumer│ └───┬───┘ └────┬───┘ └────┬───┘ └───┬──┘ └────┬───┘ │ ╔════════════════════════════════════╗ │ │ │ ║ │ API pública (llamada directa) │ ║ │ │ │ ║ │───────────────────────────────>│ ║ │ │ │ ║ │ │ ║ │ │ │ ║ │ resultado │ ║ │ │ │ ║ │< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║ │ │ │ ║ │ │ ║ │ │ │ ╚════════════════════════════════════╝ │ │ ╔═════════════════════════════════════════════════╗ │ │ ║ │ solicitud │ │ ║ │ │ ║ │───────────>│ │ ║ │ │ ║ │ │ │ ║ │ │ ║ │ │ petición HTTP │ ║ │ │ ║ │ │───────────────────────────────>│ ║ │ │ ║ │ │ │ ║ │ │ ║ │ │ respuesta │ ║ │ │ ║ │ │< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║ │ │ ║ │ │ │ ║ │ │ ║ │ resultado │ │ ║ │ │ ║ │< ─ ─ ─ ─ ─ │ │ ║ │ │ ║ │ │ │ ║ │ │ ╚═════════════════════════════════════════════════╝ │ │ │ ╔═════════════════════════════════════════╤═══════════════════════════════╗ │ ║ Comunicación asíncrona mediante eventos │ │ │ ║ │ ╟─────────────────────────────────────────┘ │ │ ║ │ ║ │ publicar evento │ │ │ │ ║ │ ║ │─────────────────────────────────────────>│ │ ║ │ ║ │ │ │ │ │ ║ │ ║ │ │ │ │ entregar evento │ ║ │ ║ │ │ │ │─────────────────────────>│ ║ │ ║ │ │ │ │ │ ║ │ ║ │ │ │ │ confirmar procesamiento │ ║ │ ║ │ │ │ │< ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║ │ ║ │ │ │ │ │ ║ │ ╚═════════════════════════════════════════╧═══════════════════════════════╝ ┌───┴───┐ ┌────┴───┐ ┌────┴───┐ ┌───┴──┐ ┌────┴───┐ │Cliente│ │ServiceA│ │ServiceB│ │Broker│ │Consumer│ └───────┘ └────────┘ └────────┘ └──────┘ └────────┘