Revisión de la herramienta temporal.io

Alejandro Celada

Alejandro Celada

Revisión de la herramienta temporal.io

Temporal es una herramienta de orquestación de microservicios que permite a los desarrolladores crear aplicaciones escalables sin sacrificar la productividad ni la fiabilidad. El servidor de temporal ejecuta la lógica de aplicación, flujos de trabajo, de una manera flexible que maneja automáticamente los errores, los reintentos y, por tanto, vuelve a intentar operaciones fallidas.

Temporal es una herramienta en la categoría Herramientas para microservicios. Y dado que los sistemas distribuidos son complejos porque hay demasiadas cosas que pueden ir mal, una herramienta como temporal.io te da robustez que unido a herramientas como Kubernetes te ayuda a tener en cuenta el tráfico de los microservicios.

Todas las peticiones pueden fallar y tienes que pensar en todos los reintentos en cuanto a código en caso de que haya alternativas en los flujos de trabajo.

La aplicación constará de cuatro piezas:

  • Un flujo de trabajo: los flujos de trabajo son funciones que definen el flujo general de la aplicación.
  • Una actividad (activity): las actividades son funciones llamadas por flujos de trabajo y contienen cualquier lógica que puede dar fallos o que puede comportarse de manera diferente en diferentes momentos. El flujo de trabajo ejecuta una sola actividad que toma una cadena como entrada y devuelve una versión formateada de esta cadena al flujo de trabajo.
  • Un trabajador (worker): los trabajadores alojan el código de actividad y flujo de trabajo y ejecutan el código pieza por pieza.
  • Un iniciador: para iniciar un flujo de trabajo, debe crear una instancia de cliente y llamar al método .start(). Esto requiere un script separado.

Hay que tener en cuenta que los flujos de trabajo se pueden fusionar y se pueden bifurcar.

En definitiva, en una herramienta que puede hacer ahorrarnos mucho tiempo y dar mayor control a nuestra aplicación. En los próximos artículos publicaremos una comparativa con herramientas similares.