Skip to content

SteffTek/NachoDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NachoDB

Network Attached Object Database

A fast, decentral, in-memory database for NoSQL documents.


WIP

Components

Core

  • NachoDB (this)
  • NachoPy (the node core, but in py)

Network (Integrated in Core)

  • NachoSalsa (Socket application layer syncs all)
  • NachoWhip (WebRTC humongus interface pillar)

Storage (Integrated in Core)

  • LocalBowl (localStore)
  • MangoBowl (MongoDB)
  • JSONBowl (JSON File)

Storage Priority

  • In-Memory Storage (Data will be voided after TTL exceeded)
  • Storage Adapters (Data will be loaded from a local storage adapter if available)
  • Network Adapter (Data will be automatically synced from the network into local/memory storage)

States

  • Every Document has a _timestamp
  • If an update for the document arrives through the network, only merge it if the remote _timestamp < NOW
  • If _timestamp < current timestamp, dont update, we have the newer document

Sync

  • (TBD) On initialisation, ask for every document on every schema over the network and sync it into the local storage adapter
  • Eventually, all clients will be synced (Eventual Consistency Theroem)
  • Maybe it makes sense, i dunno
  • If you try to send data, but you are offline, a document is marked as offline, and will retry on reconnect to send it
  • Offline Marked Documents are loaded on startup
  • If you don't have a storage adapter, or ttl runs out and your document is still marked offline, it may never be added to the database

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published