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.
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ó.
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
| Criterio | Standard | Express |
|---|---|---|
| Duración máxima | Hasta un año | Hasta cinco minutos |
| Ejecución | Exactamente una vez | Al menos una vez (asíncrona) o como máximo una vez (síncrona) |
| Historial | Guardado por Step Functions y visible en la consola | En CloudWatch Logs, si lo activas |
| Se cobra por | Transiciones de estado | Número de ejecuciones, duración y memoria |
| Úsalo para | Procesos largos y auditables: pedidos, aprobaciones humanas, pagos | Mucho 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:
| Criterio | ||
|---|---|---|
| Idea | Un coordinador central dice quién hace qué y en qué orden | Cada servicio reacciona a eventos y publica los suyos; nadie dirige |
| Analogía | El jefe de obra con su lista | Una cocina donde cada estación empieza cuando ve listo el plato anterior |
| Servicio típico | AWS Step Functions | Amazon EventBridge y SNS |
| Ventaja | El flujo completo se ve en un solo lugar; fácil de seguir y depurar | Muy desacoplado; agregar un servicio no toca a los demás |
| Cuidado | El coordinador conoce a todos los participantes | Es 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.Un equipo necesita coordinar cinco funciones Lambda en orden, con reintentos y una decisión según el resultado. ¿Qué servicio usa?
2.Un proceso de aprobación puede tardar varios días porque espera la firma de una persona. ¿Qué tipo de flujo usas?
3.¿Qué estado de Step Functions ejecuta varias ramas al mismo tiempo?
4.¿Qué describe la coreografía de servicios?
5.Necesitas procesar millones de eventos por hora, cada uno en menos de un segundo, al menor costo. ¿Qué tipo de flujo eliges?