Skip to content

microverse-network/database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database

This module is based on NeDB and Scuttlebutt modules.

NeDB is used as a datastore for collections. Scuttlebutt is utilized to replicate the collections and documents in the collections between peers.

Database class has a collection map which is a Scuttlebutt model. Database creates the collections locally based on the synchronization of this map. That process is setup by implementing createStreams and bindStreamHandlers methods.

Database class creates a substream named map in the createStreams method which is directly piped to the Scuttlebutt model's stream. bindStreamHandlers method's purpose is to subscribe to events announcing the substreams opened from the remote end. This ensures that both ends of a connection does what is needed to synchronize the collection map.

Collection

Collection class utilizes the NeDB datastore for the underlying database collection and a Scuttlebutt model to replicate the documents between peers.

It uses a substream named model to bind streams to the replication model.

Replication model is used to store the latest version of a document by its _id field. All the implementation in the Collection class is basically mirroring the changes in the datastore to the replication model.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published