
PySyncObj is a python library for building fault-tolerant distributed systems. It provides the ability to replicate your application data between multiple servers. It has following features:
* raft protocol for leader election and log replication * Log compaction - it use fork for copy-on-write while serializing data on disk * Dynamic membership changes - you can do it with syncobj_admin utility or directly from your code * Zero downtime deploy - no need to stop cluster to update nodes * In-memory and on-disk serialization - you can use in-memory mode for small data and on-disk for big one * Encryption - you can set password and use it in external network * Configurable event loop - it can works in separate thread with it's own event loop - or you can call onTick function inside your own one * Convenient interface - one can easily transform arbitrary class into a replicated one