Stuff is very simple and primitive distributed storage for stuff (duh...)
Think of it as a remote key-value map (dict) with immutable items which can replicate itself over a network of similar nodes.
- Python 2.7+
- Thrift Python bindings.
- Start several nodes of stuff.
- Introduce them to each other by making meet_neighbor call.
- Put items (key, timestamp, value) to any node.
- Item gets automatically replicated to all other nodes in the cluster.
- Retrieve item by its key from any node.
- ...
- PROFIT
Item consists of:
- Binary key -- could be UUID, for example.
- timestamp
- abstract binary data, no structure defined on DB level.
Stuff uses Apache Thrift for client-server and server-server communications.
See demo.py for an example.
- No connection pooling in client.
- Single-threaded server.
- Non-optimal propagation of data through all cluster.
- No conflict resolution.
- Very primitive DB backend (dict from python).
- No resync on node failure and recovery.
- Very primitive, after all.