Introducing Container
A Container
is a Service
to manage Jazz blocks. All Jazz blocks are managed some descendant of the main Container
class.
Container
provides a neat API for all descendants, including:
- Transparent thread safety .enter_read() .enter_write() .leave_read() .leave_write() .lock_container() .unlock_container()
- Allocation: .new_block(), .destroy_transaction()
- CRUD (Create/Read/Update/Delete): .get(), .locate(), .header(), .new_entity(), .put(), .remove(), .copy()
- CORE (Function execution API): .exec() and .modify()
- Support for container names in the API .base_names()
- A configuration style for all descendants
The CRUD has two forms, the “easy” API where things are described ina string and the “native” API where that string is parsed into its constituents. This may include commands and many things that are full described in API
Introducing Channels
Channels
is a container doing block transactions across media (files, folders, the bash shell, http urls and zeroMQ servers). This
includes keeping a cluster of Jazz nodes as a whole where every node is aware of all the others and queries can be forwarded by just
including the node name. Any imaginable communication channel, including writing files and pushing them to github (using git in the bash
shell) is accessible. This includes all protocols supported by zeroMQ and libCURL.
- See C++ ref Channels
Introducing Volatile
Volatile
is a Service to manage data objects in RAM. This includes:
- A
deque
is a double linked list accessible as a key-value store. Index
objects that are serialized as tuples and exposed via API to allow connecting everything to everything as a graph.- A priority
queue
is implemented as self balanced binary trees with a maximum number of nodes. -
A
tree
that can be navigated through commands and through keys, that implements pruning and more. - See C++ ref Volatile
Introducing Persisted
Persisted blocks are blocks stored using LMDB in the Jazz process.
- See C++ ref Persisted
Previous … | Next … | ||||
Blocks, Kinds, Tuples | APIs and Spaces |