Introducción
El motor de reglas es una cloud function hosteada en Google Cloud la platorm la cual a
grandes rasgos se encarga generar nuevos tipos de incidentes a partir de eventos de
tipo posición.
Para generar estos comportamientos se utiliza una libreria de nodejs llamada json-rules-engine.
La librería json-rules-engine sirve para definir reglas condicionales en formato JSON y evaluarlas dinámicamente en tiempo de ejecución.
-
Te permite definir reglas lógicas como datos (en JSON) y no en código duro (hardcode).
-
Esas reglas se pueden ejecutar/evaluar sobre hechos o datos (facts) que le das en tiempo de ejecución.
-
Si las reglas se cumplen, dispara eventos que puedes manejar con callbacks.
Por ejemplo:
const { Engine } = require('json-rules-engine')
// Definir la regla
const engine = new Engine()
engine.addRule({
conditions: {
any: [{
fact: 'age',
operator: 'greaterThanInclusive',
value: 18
}]
},
event: {
type: 'adult-detected',
params: {
message: 'La persona es mayor de edad'
}
}
})
// Hechos (datos reales)
engine
.run({ age: 20 })
.then(({ events }) => {
events.map(event => console.log(event.params.message))
})
Salida:
La persona es mayor de edad
¿Para qué se usa habitualmente?
-
Reglas de negocio configurables: sin tener que modificar el código de la aplicación.
-
Motor de decisiones: se puede usar como base para sistemas de recomendaciones, workflows o validaciones.
-
Evaluación dinámica de políticas o condiciones complejas: por ejemplo, para sistemas de autorización o scoring.
Veamos ahora algunos casos particualares...