Skip to content
Alan Mimms edited this page Feb 12, 2017 · 17 revisions

Gun borrows some terms from graph theory and mesh networking, then defines some of its own. Here you can find a summary of what they mean.

Node

An object within a graph. It can contain primitive values, but not other objects (only pointers to other nodes). Also known as a vertex in graph theory.

Pseudo-merge/Union

An intelligent merge between two objects. Unlike Object.assign, it uses the HAM conflict resolution engine to ensure updates are merged commutatively.

Pseudo-node/Key Node

A special type of node in gun used for adding secondary indices (via the .key() method). It provides a list of unique IDs to pseudo-merge into an aggregate node.

Soul

A synonym for an object Universally Unique Identifier. Each node in gun has one (named "#" in the object metadata).

Graph

An object that contains unique nodes.

Peer

A single device on a mesh network. Usually takes both roles of client and server.

Mesh

A collaborative network where each peer is responsible for forwarding others' messages (and responding to requests if it has the data). Refers to the concept of a mesh network.

Partition

When one group of peers can't communicate another, such as two servers losing connection between each other, but still serving clients.

Universe

The sum total of all nodes and graphs across every peer in the application.

This wiki is where all the GUN website documentation comes from.

You can read it here or on the website, but the website has some special features like rendering some markdown extensions to create interactive coding tutorials.

Please feel free to improve the docs itself, we need contributions!

Clone this wiki locally