Skip to content
Jesus Ruiz edited this page Jan 4, 2014 · 9 revisions

Durable Rules provides real-time, consistent and scalable coordination of events. A forward chaining algorithm (A.K.A. Rete) is used to evaluate massive streams of data. With a simple, yet powerful meta-liguistic abstraction you can define simple and complex rulesets. An example to illustrate the point:

var d = require('durable');
d.run({
    approve: {
        r1: {
            when: { $lt: { amount: 1000 } },
            run: function(s) { s.status = 'pending' }
        },
        r2: {
            whenAll: {
                $m: { subject: 'approved' },
                $s: { status: 'pending' } 
            },
            run: function(s) { console.log('approved'); }
        }
    }
}); 

Durable Rules relies on state of the art technologies:

  • Node.js is used as the host. This allows leveraging the vast amount of available libraries.
  • Inference state is cached using Redis, which lets scaling out without giving up performance.
  • A web client based on D3.js provides powerful data visualization and test tools.

Resources

To learn more:

Clone this wiki locally