Home

Jesus Ruiz edited this page Aug 13, 2013 · 43 revisions
Clone this wiki locally

With durable.js you can write stateful programs that coordinate long running event streams. durable.js combines state of the art technologies to provide a powerful end to end solution:

  • Programs are hosted using Node.js.
  • The program data is stored in MongoDB (document database).
  • Events are posted to the program through a simple REST interface.
  • A web client, based on d3.js, for program and data visualization.

For example

Now writing, hosting, deploying and managing stateful programs is simple.

Sequence

var d = require('durable');   
d.run({  
    sequence: d.receive({ content: 'first' })  
        .continueWith(function (s) { s.firstContinue = true; })  
        .checkpoint('first')
        .receive({ content: 'second' })
        .continueWith(function (s) { s.secondContinue = true; })  
        .checkpoint('second')
});

See it in action.

State chart

var d = require('durable');   
d.run({  
  chart: d.stateChart({
    s1: {
      t1: {
        when: d.tryReceive({ content: 's2' }),
        run: function (s) { s.i = (s.i ? s.i + 1: 1); },
        to: 's2' } },
    s2: {
      t1: {
        when: d.tryReceive({ content: 's1' }),
        run: function (s) { s.i = s.i + 1; },
        to: 's1' },
      t2: {
        when: d.tryReceive({ content: 'end' }),
        to: 'end' } },
    end: { } 
  }) 
});

See it in action.

Details

If it all sounds interesting, feel free to look at these documents.