0.2.3 • Published 7 years ago

fluctor v0.2.3

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

fluctor

Flux-like + Actor Model

Npm Package

Build Status Dependencies Coverage Status

Well, this is a library for creating a shared state across multiple instances;

Installation

npm:

npm install fluctor

What is it?

Well once you create a fluctor object you have an immutalbe state that you can change with transactions

const Fluctor = require('fluctor').Fluctor;


var fluctor = new Fluctor({
  initial: {}, // initial state
  connection: {} // connection settings
});

fluctor.state // => the state

fluctor
  .tran // can be acessed as fluctor.transactions too
  .begin() // begin the transactions
  .set('foo', 'bar') // Do the change
  .commit() // commit the changes (you can rollback too)
  .then(() => 
    console.log('Transaction Commited'));

fluctor.state // => { "foo": "bar" } is the value here and every other server

Transaction

let tran = fluctor.tran.begin();

tran.set(path, value); // Set value

tran.remove(path); // Delete value

tran.push(path, value); // Appends value to an array

tran.pop(path); // Pops last value from array

tran.increment(path, value=1); // Increment Numeric value

tran.decrement(path, value=1); // Decrement Numeric value

tran.commit()
  .then(changes => { /* the returning value from the modifications */ });

Roadmap

This project started as a personal need and i figured out that it should be a fully fledged library. That means there are a lot of tasks to be completed befor the library is production ready =]

  • Make the thing production ready
  • Make the Appenders be plugginable
  • Figure out a custom p2p comunication
  • Settle on a more strict role splitting among nodes
  • Maybe transfer some of the core code to native code

License

MIT © Dmitry Dodzin