En la primera parte de este artículo, profundizamos en cuanto a las AWS Step Functions, y como utilizarlas, en esta segunda parte ampliaremos en cuanto a su integración con DecisionRules al momento de automatizar procesos de toma de decisiones.
Partiendo de los conceptos tratados en la Parte I, donde presentamos el rol de AWS Step Functions en la orquestación de flujos de trabajo complejos y la automatización de procesos de tomas de decisiones, la Parte II profundiza en una aplicación práctica mediante la integración de DecisionRules.io para la toma de decisiones dinámica, mejorado con datos en tiempo real de la API Open Weather. Esta integración ejemplifica como AWS Step Functions puede administrar lógicas y decisiones complejas basadas en condiciones externas, mostrando el uso de esta tecnología en un escenario que requiere precisión y adaptabilidad.
Imagina un negocio de catering que necesita ajustar sus operaciones dinámicamente en función de las condiciones meteorológicas. La máquina de estados proporcionada representa un flujo de trabajo sencillo que combina la recuperación de datos meteorológicos con procesos de toma de decisiones facilitados por DecisionRules. Esta configuración permite a la empresa tomar decisiones informadas sobre la planificación de eventos, selección de menús, y los arreglos logísticos, todo ello adaptado a las previsiones meteorológicas. También gestiona reservas de los locales y crea facturas utilizando AWS Lambdas, el cual interactúa con el sistema de gestión de la empresa.
La máquina de estados comienza estableciendo una conexión con la API Open-Meteo para obtener la previsión del clima, transforma los datos devueltos para crear un cuerpo de solicitud para DecisionRules, así como las dos funciones Lambda. A continuación, estos datos informan los pasos posteriores de la toma de decisiones, donde la lógica empresarial, administrada por DecisionRules.io, determina el equipo necesario para el evento en particular. La entrada a esta máquina de estado es un simple esquema JSON en el que proporcionamos la fecha del evento, así como la latitud y longitud del local.
La ejecución comienza, siguiendo los pasos a continuación:
El proceso comienza con el estado "Create API Endpoint", el cual configura el punto final para la API Open-Meteo. Siguiendo esta configuración, el estado “Call Weather API” recupera la previsión meteorológica para la fecha y ubicación especificadas, garantizando que el proceso de toma de decisiones se base en la información meteorológica más actualizada y pertinente. Esta información se recibe en forma de un código meteorológico que puede interpretarse utilizando la documentación de Open-Meteo. La solicitud de los datos de entrada tiene el siguiente formato:
Tras obtener la previsión meteorológica, la máquina de estados pasa al estado "Create Request Body", donde prepara la entrada para DecisionRules.io basándose en los datos meteorológicos. En este estado de paso procesamos la respuesta de la API meteorológica y transformamos los datos en preparación del cuerpo de la solicitud para DecisionRules, y es aquí donde preparamos las solicitudes para cualquier otro servicio o resolución de regla que queremos ejecutar en el siguiente estado paralelo, denominado “Process Order”.
A continuación mostramos una representación del Amazon State Language del estado “Get items based on weather code”.
El núcleo de esta máquina de estados reside en su estado "Process Order”, el cual muestra la ejecución concurrente de múltiples tareas, cada una aprovechando a DecisionRules.io para diferentes aspectos de la planificación de eventos. La capacidad del procesamiento en paralelo, realza la potencia de AWS Step Functions para orquestar flujos de trabajo complejos y multifacéticos, de manera eficiente.
Fallos en las llamadas a la API: La máquina de estados incluye un bloque catch en la tarea de "Call Weather API" para gestionar los errores HTTP y los timeouts. Al encontrarse estos errores en particular, el flujo de trabajo pasa al estado "API Error Handler", el cual registra el error y concluye la ejecución, asegurando que los fallos se gestionen con elegancia sin comprometer todo el flujo de trabajo.
Fallos de ejecución paralela: Un bloque catch dentro del estado "Process Order" captura errores de cualquiera de las ramas paralelas. Si se produce un error, el flujo de trabajo pasa al estado "General Error Handler", el cual registra el error y finaliza la ejecución de forma segura. Este enfoque garantiza que los errores en una rama no detengan el proceso global, lo que permite una gestión integral de errores en múltiples tareas.
La máquina de estado emite una descripción del clima, así como los elementos que se recomiendan llevar en función del código meteorológico proporcionado por la API meteorológica.
El caso de uso avanzado de la integración de DecisionRules.io con AWS Step Functions, informado por datos meteorológicos previstos en tiempo real de la API Open Weather, demuestra un enfoque poderoso para automatizar y optimizar las decisiones empresariales. Esta aplicación no solo muestra las capacidades técnicas de estos servicios, sino que también pone de relieve el valor estratégico de aprovechar las soluciones basadas en la nube para la toma de decisiones dinámicas en las operaciones empresariales.