Motivation
A distributed system has many discrete processes that run on a multitude of arbitrary devices and networks yet to the user it appears to be a single coherent program. Distributed systems can help to provide availability and fault tolerance.
Synopsis
Fault-tolerance and strong consistency are not exactly compatable. Vines attempts to facilitate data replication and coordinated decision making through a combination of eventual consistency and quorum-based concensus.
Vines is targeted toward applications that require intelegence distribution such as application monitoring.
Features
- Automatic reconnect
- Quorum based consensus protocol
- Gossip based data replication
Examples
Data replication
A computer at 192.168.0.2
can generate some information.
var vine = vine
A computer at 192.168.0.3
can discover that information regardless of
when then peers were connected or when the data was entered.
var vine = vine
Concensus
A computer at 192.168.0.2
can call an election and cast a vote.
var electionCriteria = topic: 'email' expire: Stringnow min: 2 total: 2 var vine = vine
A computer at 192.168.0.3
can also call an election however only one
of the peers will be able to execute the callback for the quorum
event.
var vine = vine