¿No-code o Workflow-as-code? ¿Y por qué no los dos?
Publicado el 25-04-2022 por KuFlow
Credits: EJ Strat
En KuFlow sabemos que algunos usuarios no necesitan un control minucioso de los flujos de trabajo que desarrollan. En ocasiones, los procesos de negocio son tan sencillos que simplemente basta con definir un conjunto de tareas, establecer la relación entre las mismas y ejecutar el proceso.
Para ese tipo de escenario, tal vez no necesites implementar el workflow en forma de código y desplegarlo de la manera habitual, por lo que hemos desarrollado una herramienta de diagramas (KuFlow Diagram Tool), compuesta de tres elementos:
El Editor de diagramas, una nueva herramienta de tipo arrastrar-y-soltar, pensada para que nuestros usuarios puedan implementar workflows sencillos.
Serverless Workflow. En lugar de reinventar la rueda, para esta funcionalidad hemos decidido basarnos en un estándar conocido y maduro. Los flujos de trabajo serverless son una especificación open source robusta y potente.
Temporal como el principal motor que sirve de cimientos para la ejecución de los flujos de trabajo.
¿Cómo funciona?
Lo primero de todo, debes definir un flujo de trabajo usando la herramienta Editor de diagramas.
Gracias al enorme trabajo de AWS, hemos construido una interfaz de usuario minimalista y que cubre nuestras necesidades.
¡Pero ten en cuenta que esta es una primera versión! Estamos pensando en añadir nuevas funcionalidades en un futuro, a partir del feedback que recibamos de la comunidad.
Una vez que se ha definido el flujo de trabajo, en KuFlow almacenamos un fichero JSON basado en especificaciones de serverless workflow. A través de estas especificaciones podemos hacer uso de multitud de herramientas y librerías ya creadas por terceros.
Por último, nuestro ejecutor de diagramas de KuFlow ejecuta el fichero JSON generado a partir del diagrama. Este ejecutor se basa en el gran trabajo de Tihomir Surdilovic (aka tsurdilo) que puede encontrarse en su repo (¡kudos, Tihomir!).
Gracias a su impresionante trabajo, hemos desarrollado un Serverless Workflow Runtime muy sencillo, que no recoge todos los detalles que la especificación contempla, pero que cubre un conjunto básico como primera versión.
Esta funcionalidad está construida a partir de Temporal, que es una de las múltiples herramientas que empleamos actualmente en KuFlow. Gracias a ella, todas las ejecuciones de los flujos de trabajo son robustas: procesos de negocio que son duraderos, confiables y escalables.
¿Cómo usar esta funcionalidad?
Estamos confeccionando un video tutorial con todos los pasos necesarios (mantente al tanto en nuestra cuenta de Twitter o suscríbete a nuestro canal de YouTube).
Mientras tanto, puedes intentar crear tu propio Serverless workflow en KuFlow por ti mismo, creando una nueva definición de proceso y seleccionando KuFlow Diagram Tool como Workflow Engine. Recuerda que puedes hacer uso de nuestro foro para cualquier consulta o dificultad que puedas encontrar.
¿Cuáles son los próximos pasos?
Bueno, para ser sinceros, no estamos del todo seguros en este punto. Hemos pensado diferentes formas de continuar este desarrollo: añadir más funcionalidades al editor de diagramas, incorporar más detalles de las especificaciones serverless, implementar un procesador DSL,... Estamos deseando obtener más feedback de la comunidad, para poder definir las prioridades a la hora de evolucionar el producto.
¡Compártenos tus impresiones por Twitter!