Versionado

Cada cambio en una regla publicada genera una nueva versión. El versionado garantiza trazabilidad, registrando quién la cambió, cuándo y qué cambió, y permite revertir a versiones anteriores cuando sea necesario.

Estados

Cada versión puede estar en uno de los siguientes estados:

  • Borrador: puede modificarse libremente. Solo pasa a valer en la API después de ser publicada.
  • En observación: publicada en paralelo con la versión activa, sin decidir nada. Descrita en Observación.
  • Activa: versión publicada, en uso por la API. Solo una versión activa por regla. No puede modificarse: los cambios generan una nueva versión.
  • Inactiva: ya estuvo activa en algún momento. Se mantiene por trazabilidad y puede reactivarse en cualquier momento.
  • Eliminada: oculta en el panel, pero preservada en el historial. Sigue siendo visible al inspeccionar eventos antiguos que la utilizaron.

Una regla admite como máximo una versión activa y una versión en observación al mismo tiempo.

Comparación y publicación

La publicación de una versión exige la revisión previa de los cambios respecto a la versión activa. La pantalla de comparación se abre posicionada entre la versión activa y la versión a publicar, y el botón de publicar está en el propio comparativo, después de la revisión. Una regla sin versión publicada se señala como tal y solo pasa a valer después de la primera publicación.

La comparación abarca las condiciones y las acciones. Cada fila corresponde a una condición: las filas coloreadas indican las que cambiaron, y una etiqueta identifica el cambio (agregada, eliminada, reordenada o alterada). En la columna de acciones, una acción tachada deja de valer y la que la sustituye aparece después de la flecha; una acción marcada con + es nueva. El comparativo expone el efecto exacto de la publicación antes de que la versión entre en vigor.

Observación

Una versión puede publicarse en observación (shadow) antes de entrar en vigor. En ese estado se ejecuta en paralelo con la versión activa, sobre los mismos eventos reales, y nada de lo que produce cambia el resultado del evento: la decisión sigue siendo la de la versión activa. El ciclo de vida pasa a ser borrador, observación y activa.

Una versión inactiva también puede ponerse en observación, lo que permite evaluar una versión ya sustituida sin devolverle el mando de las decisiones. La versión activa es la única que no puede observarse, por estar ya decidiendo.

Una versión en observación es inmutable, como la activa: editarla crea un nuevo borrador. La versión promovida es exactamente la que fue observada, sin reescritura de las acciones.

Salidas observadas

La observación es selectiva. Al publicar, usted marca qué salidas quiere seguir. Cada salida marcada se graba en el mismo evento, en un campo con el sufijo _shadow, junto al valor que grabó la versión activa. Las salidas no marcadas se descartan junto con el resto de la ejecución.

Como los dos valores quedan en el mismo evento, la comparación usa las pantallas existentes: los filtros en Explorar, las métricas y los paneles comparan el campo y su par observado sin configuración adicional.

Las salidas observadas pueden cambiarse en cualquier momento, sin republicar la versión. Una versión que no completa ningún campo no tiene salidas para observar y no puede publicarse en observación.

Todo evento procesado registra también la versión en observación que lo procesó, además del nombre y la versión de la regla activa. Sin ese registro no sería posible atribuir un valor observado a la versión que lo escribió, ya que cada revisión es una versión nueva.

Qué no ejecuta la observación

Una versión en observación no altera el estado compartido que otras ejecuciones leen:

  • Las acciones que graban en listas se suprimen. Las condiciones que consultan listas siguen leyendo la lista real, así que una regla cuyo comportamiento es alimentar una lista y después consultarla se observa de forma aproximada, no exacta.
  • Los análisis registrados por la versión en observación quedan en ventanas propias, separadas de las que la versión activa alimenta y consulta.

Las ventanas de la observación empiezan vacías y necesitan una retención entera de tráfico para significar algo. Al promover la versión a activa, las ventanas vuelven a empezar de cero por el mismo motivo.

En un tipo de evento con versión en observación, el evento queda visible en las consultas algunos instantes después de la recepción, y no de inmediato, porque la grabación espera la ejecución observada para llevar los dos valores en el mismo registro.

Historial

Cada regla tiene un historial con las acciones realizadas sobre sus versiones: creación, edición, publicación, publicación en observación, retirada de observación, sustitución, despublicación y archivado. Cada entrada registra la versión, el autor y el momento.

El historial muestra las acciones más recientes y mantiene las demás recogidas. La lista de versiones de la regla es el registro completo.

Trazabilidad en los eventos

Todo evento procesado por una regla registra el nombre de la regla y el número de la versión que lo procesó, además de la versión en observación, cuando la haya. Esto permite reconstruir después qué lógica generó cada valor, incluso cuando la versión ya fue sustituida o eliminada.