Nodes and networking
Though Cloud Haskell processes communicate seamlessly together, they are completely oblivious to how they are connected. The transport layer provided by Network.Transport
sits between the processes and a backend that implements the transport.
A Cloud Haskell backend provides on top of a transport layer some sort of peer discovery or allows for a predefined topology. A number of backends have been implemented and more are in development. At the time of writing, there are three well-supported backends available:
- SimpleLocalNet (
distributed-process-simplelocalnet
): Fully connected with optional client/slave configuration, TCP transport, and UDP multicast peer discovery - P2P (
distributed-process-p2p
): TCP-transport with peer-to-peer discovery - ZooKeeper (
distributed-process-zookeeper
): TCP transport that uses Apache ZooKeeper as naming registry
Each backend has its use cases. In first development phases, SimpleLocalNet is the easiest choice, but non-existent network topology configuration...