Getting Started with Nomad JS

Nomad is an open source protocol to discover, publish, and remix live data streams from anyone, anywhere. Built on IPFS, a distributed network, Nomad is engineered as universal infrastructure: to be open, scalable, and durable. Nomad JS is a pure javascript version of Nomad, the previous version was written in Go and Node.

A heads up, code that uses this version of Nomad can't subscribe or publish to code that uses older versions of Nomad. It's better to just stick to nodes that all run on this version of Nomad when building with Nomad JS.

What is Nomad?

Nomad is a decentralized system for subscribing to, processing, and publishing data in the form of ordered message streams. Nomad is decentralized: there are no message brokers through which messages pass. Nomad uses IPFS to create a peer-to-peer network of nodes that routes messages from publisher to subscriber. Streams are published by nodes which are identified by a public key hash, making Nomad a permission-less system. Anyone can create a new node, subscribe to existing streams, and publish a stream without signing up for any proprietary service.

Why Nomad?

Data is a beautiful thing, but it's too hard to share live data, to process data and share real time insights, or to connect visualizations to live data. Nomad draws from the likes of stream processing systems like Apache Kafka but adds decentralization to create a global system of durable but lightweight data pipes that anyone can build on top of.


Installing Nomad

Nomad is really easy to install, you'll just be able to run a few commands, and you're up and running. But first, we'll need to install IPFS if you haven't already.

Installing IPFS

After downloading, untar the archive and run the included install.sh:

tar xvfz go-ipfs.tar.gz
cd go-ipfs
./install.sh

Test that IPFS installed successfully:

ipfs help
USAGE
  ipfs - Global p2p merkle-dag filesystem.

Install the Nomad npm module:

(If you don't have Node.js, install it first.)

npm install --save nomad-stream

Let's move on to our sample repo in the next chapter.

results matching ""

    No results matching ""