Cuando un ecosistema tiene docenas de servicios separados, el modo en que se comunican determina si tienes un sistema verdaderamente desacoplado o simplemente un monolito roto en muchos pedazos.
Hacer que el 'Servicio de Pagos' invoque directamente por HTTP al 'Servicio de Facturación', y este al de 'Envíos' (Orquestación sincrónica estricta) recrea el acoplamiento pero añade la latencia y la fragilidad de la red. Si el servidor de correos no responde hoy, el pago entero del usuario fallará en cascada, frustrando la venta completamente (Tight Coupling Destructivo).
Event-Driven Choreography (Coreografía Dirigida por Eventos)
Instalamos un Bus de Eventos de alta densidad (Kafka o AWS EventBridge). El módulo de pagos no le ordena nada al de envíos; simplemente anuncia al Bus: 'Cobro Aprobado'. Los demás módulos, suscritos, reaccionan pasivamente e inician sus procesos cuando tengan recursos.
Diseño Asincrónico Defensivo
- Tolerancia de Módulos (Resiliencia Asincrónica): Si el de envíos cae por 3 horas, el Bus almacena los mensajes, el cliente concreta su compra feliz, y al levantarse el servicio procesará todos de golpe (Message Queuing).
- Extensibilidad Cero Fricción: ¿Quieres agregar notificaciones por WhatsApp mañana? Simplemente creas el microservicio y lo suscribes al evento 'Pago Exitoso', no tocas en absoluto el delicado código de pagos.
- Topología Híbrida: Empleamos Orquestación interna (Step Functions) sólo para procesos estrictos legales o transacciones ACID, y Coreografía masiva para el tráfico B2B pesado.
El diseño de sistemas distribuidos requiere cambiar la mentalidad imperativa por un modelo puramente reaccionario de suscripción y publicación.