See #2 for master bug. The goal is to create a decentralized, distributed cluster of 3D printers that share a work queue.
PySyncObj is great for consensus and state agreement - but it is not sufficient since it lacks authentication.
go-libp2p-pubsub is a pubsub implementation using the same IPFS distributed systems that has some of this auth stuff already. As a transport layer, it makes some sense.
Combine the two - implement a pubsub-based Transport class that backs pysyncobj's RAFT consensus log, that then gets passed in on init. That changes very little about the overall algorithm, which means we have minimal code paths to maintain.
See #2 for master bug. The goal is to create a decentralized, distributed cluster of 3D printers that share a work queue.
PySyncObj is great for consensus and state agreement - but it is not sufficient since it lacks authentication.
go-libp2p-pubsub is a pubsub implementation using the same IPFS distributed systems that has some of this auth stuff already. As a transport layer, it makes some sense.
Combine the two - implement a pubsub-based Transport class that backs pysyncobj's RAFT consensus log, that then gets passed in on init. That changes very little about the overall algorithm, which means we have minimal code paths to maintain.