Skip to content
jruizgit edited this page Jul 20, 2013 · 43 revisions

durable.js let's you manage data by coordinating event streams that span across long periods of time.

  • Programs are hosted using Node.js.
  • The program data is stored in mongoDb (object 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

Writing efficient, consistent and reliable programs is simple and easy.

Sequence

var d = require('durable');   
d.run({  
  sequence: d.receive({ content: "hello world" })  
    .continueWith(function (s) { s.hello = s.getOutput().content; })  
    .checkpoint("hello")  
    .receive({ content: "good bye" })  
    .continueWith(function (s) { s.bye = s.getOutput().content; })  
    .checkpoint("bye")  
}); 

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: { } 
  }) 
});

Details

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

Clone this wiki locally