Versionado

Cada cambio en una regla o en un análisis publicado 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.

La mecánica es la misma en ambos casos: una versión publicada es inmutable, la edición parte de ella hacia un borrador, y la publicación sustituye lo que está en producción. Lo que difiere en el análisis está en Versiones de análisis.

Estados

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

  • Borrador: puede modificarse libremente. Solo pasa a valer 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. 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 o un análisis admite como máximo una versión activa y una versión en observación al mismo tiempo. Una versión publicada presenta el botón Nueva versión a partir de esta en lugar del botón de edición, e informa que no puede editarse.

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.

En el análisis, cada fila corresponde a una celda, con el valor anterior y el nuevo de cada configuración alterada.

Condiciones cumplidas

Cada condición de una versión de regla registra cuántas veces fue cumplida cada día, presentado en la propia condición junto con el total de ejecuciones del período. La lectura distingue tres situaciones: el día en que la regla no recibió tráfico, el día en que se ejecutó sin que la condición fuera cumplida, y el día en que fue cumplida al menos una vez.

El conteo localiza la condición que nunca se cumple, sea porque la expresión no corresponde al tráfico real, sea porque una condición anterior ya completó el campo que ella prueba. Una condición que no se cumple ninguna vez desde la publicación es candidata a revisión antes de la próxima versión.

El conteo empieza en la publicación de la versión y considera únicamente eventos reales: las simulaciones quedan fuera. Una versión recién publicada, por lo tanto, empieza sin lectura.

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, de modo 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.

Versiones de análisis

Un análisis sigue el mismo ciclo que la regla, con tres particularidades.

Toda edición en un análisis publicado, sea una celda, sea el orden de la cascada, crea un borrador, y la publicación lleva el conjunto entero a producción de una vez. No hay publicación de una celda aislada: la cascada se publica como un todo, de modo que las celdas nunca quedan en versiones diferentes entre sí.

Un análisis admite varios borradores al mismo tiempo, cada uno partiendo de la versión que lo originó. La página del análisis presenta los borradores abiertos y el camino hacia cada uno.

Alterar lo que una celda mide o la ventana en la que acumula descarta el historial ya acumulado por esa celda, que vuelve a empezar vacía y necesita una retención entera de tráfico para volver a significar algo. La comparación señala esa consecuencia antes de la publicación, y la confirmación se solicita en el momento del cambio. Las demás celdas del análisis mantienen sus ventanas.

Historial

Cada regla y cada análisis 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 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.

La versión del análisis que decidió un evento queda registrada por la acción ejecutar análisis, en el destino Versión.