Saltar al contenido
aprendeaws.dev

Módulo 9 · Eventos, colas y mensajería/Lección 58

Step Functions: orquestar flujos de trabajo

Un diagrama de pasos que se ejecuta: reintentos, esperas, decisiones y tareas en paralelo sin código de pegamento.

Al terminar podrás

  • →Explicar qué es una máquina de estados
  • →Diferenciar orquestación y coreografía
  • →Elegir entre flujos estándar y exprés

Un proceso de negocio rara vez es un solo paso. Aprobar un crédito implica validar datos, consultar el historial, decidir según el puntaje, esperar una firma y notificar. Si escribes todo eso en una función, terminas con reintentos, esperas y manejo de errores mezclados con la lógica. AWS Step Functions separa el flujo de los pasos: dibujas el proceso como una máquina de estados y el servicio la ejecuta.

Máquinas de estados

Una máquina de estados es una lista de pasos (estados) y las transiciones entre ellos. Se define en JSON con el Amazon States Language, o se arma arrastrando bloques en Workflow Studio en la consola. Cada ejecución queda registrada: puedes ver en un diagrama qué paso corrió, con qué datos y dónde falló.

EstadoQué hace
TaskEjecuta trabajo: invoca una Lambda o llama a un servicio de AWSPuede escribir en DynamoDB o enviar a SQS sin Lambda
ChoiceDecide el camino según los datosSi el puntaje es mayor a 700, aprueba; si no, revisión manual
WaitEspera un tiempo o hasta una fechaEsperar 24 horas antes de enviar un recordatorio
ParallelCorre varias ramas al mismo tiempoValidar identidad y consultar historial a la vez
MapRepite los mismos pasos para cada elemento de una listaProcesar cada línea de un pedido
Succeed y FailTerminan la ejecución con éxito o con error

Reintentos y manejo de errores

Los servicios fallan a veces por razones pasajeras. En cada estado puedes declarar un Retry: cuántas veces reintentar, cada cuánto y con qué crecimiento del intervalo. Y un Catch: a qué estado ir si los reintentos se agotan, por ejemplo, uno que avisa al equipo y deja el pedido como pendiente.

Esa lógica, que en código serían decenas de líneas de try y temporizadores, aquí es configuración. Tus funciones quedan pequeñas y enfocadas en una sola cosa.

Standard o Express

CriterioStandardExpress
Duración máximaHasta un añoHasta cinco minutos
EjecuciónExactamente una vezAl menos una vez (asíncrona) o como máximo una vez (síncrona)
HistorialGuardado por Step Functions y visible en la consolaEn CloudWatch Logs, si lo activas
Se cobra porTransiciones de estadoNúmero de ejecuciones, duración y memoria
Úsalo paraProcesos largos y auditables: pedidos, aprobaciones humanas, pagosMucho volumen y corta duración: procesar eventos de IoT o de streaming

Orquestación o coreografía

Hay dos formas de coordinar servicios, y en un sistema grande se usan las dos:

CriterioOrquestaciónCoreografía
IdeaUn coordinador central dice quién hace qué y en qué ordenCada servicio reacciona a eventos y publica los suyos; nadie dirige
AnalogíaEl jefe de obra con su listaUna cocina donde cada estación empieza cuando ve listo el plato anterior
Servicio típicoAWS Step FunctionsAmazon EventBridge y SNS
VentajaEl flujo completo se ve en un solo lugar; fácil de seguir y depurarMuy desacoplado; agregar un servicio no toca a los demás
CuidadoEl coordinador conoce a todos los participantesEs difícil ver el proceso completo y saber dónde se trabó

Repasa las piezas que suele coordinar: Lambda, SQS y DynamoDB. Para el lado de la coreografía, vuelve a EventBridge.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Un equipo necesita coordinar cinco funciones Lambda en orden, con reintentos y una decisión según el resultado. ¿Qué servicio usa?

  2. 2.Un proceso de aprobación puede tardar varios días porque espera la firma de una persona. ¿Qué tipo de flujo usas?

  3. 3.¿Qué estado de Step Functions ejecuta varias ramas al mismo tiempo?

  4. 4.¿Qué describe la coreografía de servicios?

  5. 5.Necesitas procesar millones de eventos por hora, cada uno en menos de un segundo, al menor costo. ¿Qué tipo de flujo eliges?