Regras
Uma regra descreve, em uma linguagem simplificada, o que a plataforma deve fazer com um evento no momento em que ele chega. Ela é executada de forma síncrona, durante o envio para POST /events, e pode enriquecer o próprio evento com novos valores antes que ele seja armazenado.
Toda regra pertence a um tipo de evento. Esse vínculo é o que define quais campos podem ser usados nas condições e quais campos podem receber valores.
Estrutura
Uma regra é um conjunto ordenado de condições. Cada condição tem:
- um nome, para identificá-la no painel;
- uma expressão, que resulta em verdadeiro ou falso, escrita conforme a sintaxe para expressões;
- de zero a várias ações, executadas quando a expressão é verdadeira.
Como uma regra é executada
- o evento chega em
POST /eventse é validado conforme o contrato do tipo de evento; - a plataforma identifica qual regra aplicar;
- as condições são avaliadas em ordem, todas elas: a avaliação não para na primeira condição satisfeita;
- cada condição satisfeita executa suas ações, na ordem em que estão configuradas;
- os valores produzidos são gravados no evento e devolvidos na resposta.
Todas as condições compartilham a mesma memória de trabalho: uma condição enxerga o que as anteriores escreveram. Isso permite encadear o processamento: uma condição enriquece o evento com um dado externo e outra, mais adiante, decide com base nesse dado.
Qual regra é executada
A regra a executar é escolhida em duas etapas:
- o nome informado em
rule.namena requisição; - se a requisição não informar nenhum, a regra padrão configurada no tipo de evento.
{
"event": {
"type": "transaction",
"id": "evt_8f3a",
"attributes": { "amount": "1500.00", "status": "pending" },
"rule": { "name": "minha_regra" }
}
}
A regra precisa ter uma versão ativa publicada e pertencer ao mesmo tipo de evento do evento enviado. Consulte versionamento para publicar e reverter versões.
Quando nenhuma regra é executada
Nos cenários abaixo o evento é ingerido normalmente, apenas sem passar por nenhuma regra:
- a requisição não informa uma regra e o tipo de evento não tem regra padrão;
- a regra informada não existe;
- a regra existe, mas não tem versão ativa publicada;
- a regra pertence a outro tipo de evento.
A requisição não falha em nenhum desses casos. Um nome de regra incorreto não interrompe a ingestão; por isso, ao configurar uma regra nova, confirme no painel que ela está ativa e vinculada ao tipo de evento correto.
O que a regra grava no evento
As ações gravam nos campos do próprio tipo de evento. Esses valores passam a fazer parte do evento como qualquer outro dado enviado na requisição: são persistidos, aparecem na resposta da API, podem ser consultados no painel e podem alimentar métricas e monitoramentos.
Além disso, a plataforma registra automaticamente qual regra processou o evento e em qual versão, em campos reservados criados na primeira ativação de uma regra do tipo de evento. Esses campos ficam disponíveis para consulta e análise, mas não são devolvidos na resposta da API e não podem ser preenchidos na ingestão: nomes de campo iniciados por _ são rejeitados.
Limitações
Há limites de quantidade e tamanho aplicáveis a regras e listas. Consulte limites e parâmetros antes de planejar configurações extensas.