Features:
- Modular (Build your own DB)
- Pre-built (Use our pre-built code with configuration) -
server.js
- Exposed Query to HTTP, Websockets
Modularity:
- Config files
- Schema
- Default communication adapters (Websocket, HTTP)
- ACL
- Built-In and Custom indexing algorithms (linked lists, time based, geospatial, History, etc)
- Storage
Conceptual:
- Linked lists use the
prev and next iterators via an Index and expose node.prev() and node.next() API
- History index offers version control, revisions, and rollback support
Details:
JoyDB is a modular first database, this means users have the ability to roll their own database like Legos. The default server.js is for non-devs who want out of the box functionality, custom configuration, and potentially an IDE. Other modular parts include exposing the Query module to communication adapters (like HTTP server, Websockets, etc).
Gossip:
- Mesh module should allow for data splitting between super peers for enterprise federated setups. To provide authentication between these peers, we use the ACL module with whitelist.
- Storage has a
shouldSave placeholder which can be over-ridden for more fine-grained control over which data to save based on factors.
- Storage is a higher-order component which exposes APIs for other modules that use it. (like
shouldSave)
TODO:
- Flatten object and detect circular references, creating links between node data
Features:
server.jsModularity:
Conceptual:
prevandnextiterators via an Index and exposenode.prev()andnode.next()APIDetails:
JoyDB is a modular first database, this means users have the ability to roll their own database like Legos. The default
server.jsis for non-devs who want out of the box functionality, custom configuration, and potentially an IDE. Other modular parts include exposing the Query module to communication adapters (like HTTP server, Websockets, etc).Gossip:
shouldSaveplaceholder which can be over-ridden for more fine-grained control over which data to save based on factors.shouldSave)TODO: