-
Notifications
You must be signed in to change notification settings - Fork 206
Home
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.
To learn more:
- [Setup] (http://www.github.com/jruizgit/rules/wiki/setup)
- [Approve Tutorial] (http://www.github.com/jruizgit/rules/wiki/approve-tutorial)
- [Order Tutorial] (http://www.github.com/jruizgit/rules/wiki/order-tutorial)
- [Concepts] (http://www.github.com/jruizgit/rules/wiki/concepts)