A distributed no-master key-value store
Project description
Welcome to MoaT-KV!
MoaT-KV is a master-less distributed key-value storage system. It circumvents the CAP theorem (you can’t have all of consistency, availablilty, and fault tolerance) using the assumption that a key is typically changed by one node only. It is thus resistant to partitioning and intended to be always-on; it will not block or lose updates, even in a partitioned network.
MoaT-KV comes with several batteries included:
Basic user management, pattern-based ACLs
Strong typing, code- and/or JSON Schema-based
Data mangling
Background code execution
Seamless recovery even if only one master is running
The underlying communication is based on MQTT. A Serf back-end is also available. Others are easy to implement.
MoaT-KV was originally called “distkv”.
API
MoaT-KV offers an efficient msgpack-based interface to access data and to change internal settings. Most configuration is stored inside MoaT-KV itself.
Stored data are not forced to be strings or binary sequences, but can be anything that MsgPack supports. Keys to storage are multi-level and support string, integer/float, and tuple keys.
Non-Features
MoaT-KV does not support data partitioning. Every node stores the whole data set and can instantly deliver mostly-uptodate data.
MoaT-KV does not have a disk-based storage backend. Periodic snapshots and event logs can be used to quickly restore a system, if necessary.
Status
MoaT-KV is mostly stable. There are a lot of corner cases that don’t have tests yet.
TODOs: * some services (esp. command line tools and runners) are under-tested * there’s no good API for errors
TODO
clean up some of the more egregious command line mistakes
create a page for showcase-ing subprojects (knx owfs akumuli …)
improve Home Assistant integration
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file moat-kv-0.70.18.tar.gz
.
File metadata
- Download URL: moat-kv-0.70.18.tar.gz
- Upload date:
- Size: 177.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94745c7825052a68d3bc556c8b45729bd6606b150badb309c0df3cbf1bba530d |
|
MD5 | b13bf1c1d5f85282fc4faaffe7313059 |
|
BLAKE2b-256 | e34ff8f4d0b3a6d467d85580f083dc93d196b4a1dc661032ff6cc01cb0fd4ddd |
File details
Details for the file moat_kv-0.70.18-py3-none-any.whl
.
File metadata
- Download URL: moat_kv-0.70.18-py3-none-any.whl
- Upload date:
- Size: 126.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b64887b7e1da0954c3061cd1987c20e62b0cced99ca5caa2c6fa06743edfdeee |
|
MD5 | 46d0619692d304c6d23002dbac0c32a0 |
|
BLAKE2b-256 | b58eb2250e623e872717900c73574db9e69a96ac68b3fd13d900c5026088ecfe |