Un árbol es la representación gráfica de la lógica de negocio que implementa un microservicio en la plataforma Reevolute Builder.
Desde el exterior
Desde el punto de vista de un ente externo que consume los microservicios generados en Reevolute Builder, se pueden reconocer 2 conceptos diferentes:
Transacción: Identifica cada par Request/Response
Sesión: Permite agrupar un conjunto de transacciones que pertenecen al mismo flujo
Esto se muestra en la siguiente figura.
Internamente
Internamente los árboles están conformados por nodos y enlaces que permiten realizar tareas y definir el flujo que seguirá cada transacción.
Los nodos pueden clasificarse en alguno de los siguientes tipos:
Tipo de Nodos
Descripción
Inicio
Define el comienzo de ejecución de un árbol
Intermedio
Realiza alguna acción durante la ejecución del árbol
Final
Define la respuesta que se entregará en cada transacción de un árbol
Todo árbol debe tener un nodo inicio y al menos un nodo final. El nodo inicio es donde comienza la ejecución, avanzando por diferentes nodos intermedios y enlaces dependiendo de la lógica configurada, hasta que se llega a un nodo final que termina la transacción en curso y define la respuesta que se le entrega al ente externo.
Creación y Evolución de Árboles
Borradores
Son las entidades que permiten generar, probar y evolucionar lógicas de negocio que posteriormente se convertirán en árboles que podrán ser invocados por plataformas externas.
Un borrador contiene nodos y enlaces que definen el flujo que será utilizado por una transacción. En el siguiente diagrama se muestra la evolución de un borrador que contenía inicialmente 5 nodos hasta llegar a 8 nodos.
Las lógicas generadas en un borrador pueden ejecutarse internamente con el objetivo de validar su funcionamiento, corregir y mejorar su funcionalidad, pero no pueden ser invocadas desde una plataforma externa.
Árboles
Son las entidades que exponen las lógicas de negocio construidas para ser invocadas desde plataformas externas.
Una vez que un borrador implementa la lógica esperada puede utilizarse para generar un nuevo árbol. El borrador se «convierte» en la primera versión del árbol.
Por otro lado, las versiones de un árbol son las que pueden publicarse para ser invocadas desde el exterior, con release «test» o «production».
En la siguiente figura se muestra como un borrador «S» se convierte en la primera versión del árbol «A», la que se publica en el release «production».
Un borrador puede ser generado desde cero o puede ser generado desde alguna versión de un árbol. En el siguiente diagrama se muestra como el borrador «T» fue generado desde la primera versión del Árbol «A», como es evolucionado y finalmente convertido en la versión 2 del árbol, la que se publica con el release «test».
Finalmente, en el siguiente digrama se muestra una evolución del árbol A, con 4 versiones, y como a partir del borrador «W» se pudo generar un nuevo árbol «B». Ambos árboles tienen publicados los releases «test» y «production».
Releases "test" y "production"
Como se ha descrito, los árboles pueden poseer más de una versión, las que pueden publicarse con el release «test» o «production».
Son los releases de un árbol los que son invocados por una plataforma externa, no sus versiones.
Esta capacidad de publicar 2 releases permite que una plataforma externa utilice la lógica publicada en «production» para sus lógicas/clientes productivas/os y la lógica en «test» para validar nuevas versiones del árbol.
Esto permite la evolución controlada de los árboles.
Tipos de Árboles
Si bien en la actualidad existe un único tipo de árbol, dentro del roadmap de la plataforma se contempla disponibilizar nuevas capacidades que serán expuestas como nuevos tipos de árboles.
En términos generales, los distintos tipos de árboles se diferenciarán en:
Funcionamiento externo (relación transacciones con sesiones)
Capacidades internas (conjunto de nodos disponibles)
Actualmente los tipos de árboles que existen son los siguientes:
Tipo de Árbol
Funcionamiento externo
Capacidades internas
COMMON
Sólo una transacción por cada sesión
12 nodos (1 inicio, 2 finales y 9 intermedios)
En la siguiente página se explica detalladamente las características y capacidades de este tipo de árbol.