
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

A fork of the original node-gossip
grape·vine (grāp′vīn′) n.
- A vine on which grapes grow.
a. The informal transmission of information, gossip, or rumor from person to person. b. A usually unrevealed source of confidential information.
Please note: Version 1.0.0+ has breaking changes and cannot transparently replace 0.*.* versions
node-gossip implements a gossip protocol w/failure detection, allowing you to create a fault-tolerant, self-managing cluster of node.js processes. Each server in the cluster has it's own set of key-value pairs which are propogated to the others peers in the cluster. The API allows you to make changes to the local state, listen for changes in state, listen for new peers and be notified when a peer appears to be dead or appears to have come back to life.
Check out the the scripts in the simulations/ directory for some examples.
var Gossiper = require('grapevine').Gossiper;
// Create a seed peer.
var seed = new Gossiper({ port: 9000 });
seed.start();
// Create 20 new peers and point them at the seed (usually this would happen in 20 separate processes)
// To prevent having a single point of failure you would probably have multiple seeds
for(var i = 9001; i <= 9020;i++) {
//For IPv6 peers use the format [ad:dre::ss]:port. e.g. [::1]:9000
var g = new Gossiper({port: i, seeds:['127.0.0.1:9000'] });
g.start();
g.on('update', function(peer, k, v) {
console.log("peer " + peer + " set " + k + " to " + v); // peer 127.0.0.1:9999 set somekey to somevalue
});
}
// Add another peer which updates it's state after 15 seconds
var updater = new Gossiper({ port: 9999, seeds: ['127.0.0.1:9000'] });
updater.start();
setTimeout(function() {
updater.setLocalState('somekey', 'somevalue');
// with expiry
updater.setLocalState('somekey', 'somevalue', Date.now() + 10000); // 10 seconds from now this key will start to expire in the gossip net
}, 15000);
Gossiper methods:
allPeers()
livePeers()
deadPeers()
peerValue(peer, key)
peerKeys(peer)
getLocalState(key)
setLocalSate(key, value)
Gossiper events:
on('update', function(peer_name, key, value) {})
on('new_peer', function(peer_name) {})
on('peer_alive', function(peer_name) {})
on('peer_failed', function(peer_name) {})
expresso -I lib test/*
Both the gossip protocol and the failure detection algorithms are based off of academic papers and Cassandra's (http://www.cassandra.org/) implementation of those papers. This library is highly indebted to both.
FAQs
gossip protocol - a fork of gossiper module with some added features
We found that grapevine demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.