Skip to content
Lee Thomas edited this page Apr 29, 2022 · 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.

Graph

An object that contains unique nodes.

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.

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.

Partition

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

Peer

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

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).

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