Saltar al contenido principal

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...