Reglas
Una regla describe, en un lenguaje simplificado, qué debe hacer la plataforma con un evento en el momento en que llega. Se ejecuta de forma síncrona, durante el envío a POST /events, y puede enriquecer el propio evento con nuevos valores antes de que sea almacenado.
Toda regla pertenece a un tipo de evento. Ese vínculo es el que define qué campos pueden usarse en las condiciones y qué campos pueden recibir valores.
Estructura
Una regla es un conjunto ordenado de condiciones. Cada condición tiene:
- un nombre, para identificarla en el panel;
- una expresión, que resulta en verdadero o falso, escrita según la sintaxis para expresiones;
- de cero a varias acciones, ejecutadas cuando la expresión es verdadera.
Cómo se ejecuta una regla
- el evento llega a
POST /eventsy se valida según el contrato del tipo de evento; - la plataforma identifica qué regla aplicar;
- las condiciones se evalúan en orden, todas ellas: la evaluación no se detiene en la primera condición satisfecha;
- cada condición satisfecha ejecuta sus acciones, en el orden en que están configuradas;
- los valores producidos se graban en el evento y se devuelven en la respuesta.
Todas las condiciones comparten la misma memoria de trabajo: una condición ve lo que escribieron las anteriores. Esto permite encadenar el procesamiento: una condición enriquece el evento con un dato externo y otra, más adelante, decide en función de ese dato.
Qué regla se ejecuta
La regla a ejecutar se elige en dos etapas:
- el nombre informado en
rule.nameen la solicitud; - si la solicitud no informa ninguno, la regla predeterminada configurada en el tipo de evento.
{
"event": {
"type": "transaction",
"id": "evt_8f3a",
"attributes": { "amount": "1500.00", "status": "pending" },
"rule": { "name": "mi_regla" }
}
}
La regla necesita tener una versión activa publicada y pertenecer al mismo tipo de evento que el evento enviado. Consulte versionado para publicar y revertir versiones.
Cuándo no se ejecuta ninguna regla
En los escenarios siguientes el evento se ingiere normalmente, solo que sin pasar por ninguna regla:
- la solicitud no informa una regla y el tipo de evento no tiene regla predeterminada;
- la regla informada no existe;
- la regla existe, pero no tiene versión activa publicada;
- la regla pertenece a otro tipo de evento.
La solicitud no falla en ninguno de estos casos. Un nombre de regla incorrecto no interrumpe la ingestión; por eso, al configurar una regla nueva, confirme en el panel que está activa y vinculada al tipo de evento correcto.
Qué graba la regla en el evento
Las acciones graban en los campos del propio tipo de evento. Esos valores pasan a formar parte del evento como cualquier otro dato enviado en la solicitud: se persisten, aparecen en la respuesta de la API, pueden consultarse en el panel y pueden alimentar métricas y monitoreos.
Además, la plataforma registra automáticamente qué regla procesó el evento y en qué versión, en campos reservados creados en la primera activación de una regla del tipo de evento. Esos campos quedan disponibles para consulta y análisis, pero no se devuelven en la respuesta de la API y no pueden completarse en la ingestión: los nombres de campo que comienzan con _ se rechazan.
Limitaciones
Existen límites de cantidad y tamaño aplicables a reglas y listas. Consulte límites y parámetros antes de planificar configuraciones extensas.