Patrones de coreografía frente a orquestación
Compare la coreografía de eventos (cada servicio reacciona de forma independiente) con la orquestación (un coordinador central dirige los servicios) y seleccione el patrón adecuado para su arquitectura
Patrones de coreografía frente a orquestación es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
Dos enfoques para coordinar microservicios
Cuando los microservicios deben colaborar para completar un proceso empresarial, existen dos patrones de coordinación fundamentales. La orquestación utiliza un coordinador central (como Step Functions) que ordena explícitamente las acciones de cada servicio. La coreografía no tiene un coordinador central: los servicios escuchan eventos y reaccionan de forma independiente. Comprender cuál utilizar y cuándo combinarlos es una competencia arquitectónica clave que se evalúa en el examen SAA-C03.
Explicación del patrón de orquestación
En la orquestación, un servicio central (el orquestador) controla la secuencia de operaciones. Llama al Servicio A, espera la respuesta, después llama al Servicio B y así sucesivamente. El orquestador tiene visibilidad completa del estado del proceso, gestiona los errores y los reintentos, y puede tomar decisiones basadas en los resultados intermedios. En AWS, Step Functions es el orquestador de referencia: define todo el flujo de trabajo como una máquina de estados y dirige cada paso.
# Orchestration: Step Functions state machine drives order processing
# StepFunctions -> ValidateOrder Lambda -> ChargePayment Lambda -> NotifyShipping Lambda
# Each arrow is an explicit command from the orchestrator
# If ChargePayment fails, Step Functions catches the error and routes to NotifyFailure
# The orchestrator (Step Functions) knows the full state of the order at every momentExplicación del patrón de coreografía
En la coreografía, los servicios se comunican mediante eventos sin un coordinador central. El Servicio A completa su tarea y publica un evento (por ejemplo, OrderValidated) en un bus de eventos o topic. El Servicio B escucha los eventos OrderValidated y procesa el pago; después publica PaymentCharged. El Servicio C escucha PaymentCharged y envía el pedido. Cada servicio es autónomo y está desacoplado: solo conoce los eventos que consume y produce, no los demás servicios.
# Choreography: EventBridge bus connects services without central coordinator
# OrderService -> publishes 'OrderPlaced' to EventBridge
# PaymentService -> listens for 'OrderPlaced', charges card, publishes 'PaymentCharged'
# ShippingService -> listens for 'PaymentCharged', creates shipment, publishes 'OrderShipped'
# NotificationService -> listens for 'OrderShipped', sends email
# No service calls another service directly — all communication is via eventsServicios de AWS para cada patrón
En AWS, Step Functions es la principal herramienta de orquestación. Para la coreografía, las herramientas principales son Amazon EventBridge (para enrutar eventos entre servicios con filtrado basado en el contenido), Amazon SNS (para una distribución sencilla) y Amazon SQS (para el intercambio de mensajes punto a punto entre servicios). Puede combinar los patrones: utilice EventBridge para la coreografía entre dominios y contextos delimitados, y Step Functions para orquestar los pasos dentro de un único dominio.
Compensaciones: observabilidad
La orquestación proporciona visibilidad centralizada: el historial de ejecución de Step Functions muestra exactamente en qué punto se encuentra un flujo de trabajo, cuánto tardó cada paso y qué falló. La depuración es sencilla. La coreografía distribuye la visibilidad entre varios servicios y buses de eventos; rastrear una única transacción empresarial requiere correlacionar registros y eventos de muchos servicios. Por ello, los sistemas basados en coreografía dependen en gran medida de los identificadores de correlación y del tracing distribuido (AWS X-Ray) para obtener visibilidad de extremo a extremo.
# Correlation ID pattern for choreography observability
# Every event includes a correlationId that flows through the entire chain
{
'source': 'com.myapp.orders',
'detail-type': 'OrderPlaced',
'detail': {
'orderId': 'ORD-123',
'correlationId': 'CORR-abc-456', # propagated to every downstream event
'customerId': 'CUST-789',
'total': 99.99
}
}Compensaciones: acoplamiento
La coreografía ofrece un acoplamiento más flexible: añadir un nuevo servicio que escuche eventos existentes no requiere cambios en los servicios actuales. Por ejemplo, añadir un servicio de analítica que escuche eventos OrderPlaced no afecta al servicio de pedidos ni al de pagos. La orquestación introduce un acoplamiento más estrecho entre el orquestador y todos los servicios a los que llama; añadir un paso nuevo requiere modificar la definición de la máquina de estados, aunque los servicios individuales permanezcan aislados.
Compensaciones: gestión de errores
La orquestación hace explícita la gestión de errores: los bloques Catch de Step Functions definen estados alternativos para cada tipo de error, y el historial completo del flujo de trabajo muestra el contexto del fallo. En la coreografía, la gestión de errores está distribuida: cada servicio debe gestionar sus propios fallos y, opcionalmente, publicar un evento de error al que puedan reaccionar otros servicios. Implementar sagas (transacciones compensatorias para deshacer el trabajo cuando falla un paso) es mucho más complejo en la coreografía que en la orquestación.
# Saga pattern in choreography: compensating events
# Happy path:
# OrderPlaced -> PaymentCharged -> InventoryReserved -> OrderShipped
#
# Failure path (InventoryReservation fails):
# InventoryReservationFailed event published
# PaymentService listens -> issues refund -> publishes PaymentRefunded
# OrderService listens -> cancels order -> publishes OrderCancelled
#
# In orchestration (Step Functions), the compensating logic is in explicit Catch statesCuándo elegir la orquestación
Prefiera la orquestación cuando: el proceso empresarial tenga una secuencia lineal o ramificada clara, con resultados explícitos de éxito o fallo; necesite visibilidad centralizada del estado del proceso para operaciones o cumplimiento normativo; la gestión de errores implique una lógica de compensación compleja; o el flujo de trabajo sea de larga duración y deba sobrevivir a reinicios de servicios. Algunos ejemplos son el procesamiento de pedidos, la incorporación de pacientes y la gestión de reclamaciones de seguros: todos son flujos de trabajo con requisitos claros de inicio, fin y auditoría.
Cuándo elegir la coreografía
Prefiera la coreografía cuando: los servicios pertenezcan a equipos distintos que no deban coordinarse estrechamente; el sistema deba permitir la ampliación mediante nuevos servicios sin modificar los existentes; los eventos representen hechos en lugar de comandos (por ejemplo, 'OrderShipped' en lugar de 'ShipOrder'); o desee la máxima escalabilidad, ya que no existe un cuello de botella central. Algunos ejemplos son la ingesta de analítica, la distribución de notificaciones y el registro de auditoría: casos en los que varios consumidores independientes reaccionan al mismo evento.
Arquitecturas híbridas
La mayoría de las arquitecturas de AWS del mundo real utilizan ambos patrones en distintos niveles de granularidad. Un enfoque híbrido habitual consiste en usar la coreografía con EventBridge para desacoplar contextos delimitados (por ejemplo, el dominio de pedidos emite eventos, y los dominios de inventario, pagos y envíos responden de forma independiente), mientras que dentro del dominio de pagos se utiliza la orquestación con Step Functions para coordinar los pasos internos del flujo de pago (cobro, comprobación de fraude, autorización y liquidación). Esto proporciona un acoplamiento flexible entre dominios y claridad en los procesos internos.
# Hybrid: EventBridge for inter-domain + Step Functions for intra-domain
#
# EventBridge bus (choreography):
# Order domain publishes 'OrderPlaced'
# Payment domain receives it, starts Step Functions execution
#
# Step Functions (orchestration inside Payment domain):
# ValidateCard -> FraudCheck -> AuthorisePayment -> SettlePayment
# On success: PaymentDomain publishes 'PaymentCharged' to EventBridge bus
# On failure: Step Functions Catch -> publishes 'PaymentFailed' eventIndicadores del examen SAA-C03
En el examen, busque estos indicadores. Palabras clave de coreografía: «acoplamiento flexible», «los servicios reaccionan a eventos», «los equipos son responsables de servicios independientes», «distribución a múltiples consumidores», «agregar un servicio nuevo sin modificar los existentes». Palabras clave de orquestación: «coordinar pasos en secuencia», «hacer seguimiento del estado del flujo de trabajo», «gestionar fallos parciales con compensación», «paso de aprobación humana», «proceso de larga duración con gestión de errores». Una pregunta que describa un coordinador central que dirige otros servicios siempre hace referencia a la orquestación.
Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Repaso de la lección
En esta lección ha aprendido que la orquestación utiliza un coordinador central (Step Functions) para controlar de forma explícita y visible el flujo de trabajo, que la coreografía utiliza eventos (EventBridge) para proporcionar un acoplamiento flexible y facilitar la extensibilidad y que la mayoría de las arquitecturas de producción combinan ambos patrones en distintos niveles de granularidad. A continuación, exploraremos el formato del examen SAA-C03 y la estrategia basada en la ponderación de los dominios.
Preguntas frecuentes
¿La lección «Patrones de coreografía frente a orquestación» es gratis?
Sí — el texto completo de «Patrones de coreografía frente a orquestación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Patrones de coreografía frente a orquestación»?
Compare la coreografía de eventos (cada servicio reacciona de forma independiente) con la orquestación (un coordinador central dirige los servicios) y seleccione el patrón adecuado para su arquitectu… Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Patrones de coreografía frente a orquestación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- EventBridge: bus de eventos y reglas
- Step Functions: orquestación de flujos de trabajo sin servidor
- Kinesis Data Streams para el procesamiento de eventos en tiempo real
- Patrones de coreografía frente a orquestación