by nick
Sun, May 31 2009 14:33
 | I have recently been looking at the Spread Toolkit. I have written a set of bindings that allow F# clients to participate in a Spread network and posted them up to CodePlex. From the project site: Spread is an open source toolkit that provides a high performance messaging service that is resilient to faults across local and wide area networks. It has a client-daemon architecture, with most of the functionality implemented in the Spread daemon and a simple tcp-based protocol for communication with clients. |
By providing consistent, ordered and reliable membership messages to processes participating in a network, those processes can implement truly-distributed algorithms for fault-tolerance, load-balancing and leader-election, without further agreement/consensus protocols.
This project provides an F# implementation of the Spread client-side protocol, allowing F# projects to participate in a Spread network.
The sample projects provided include:
- A console application for joining and leaving groups, as well as sending messages to those groups.
- A server application that may have many instances, each agreeing on who is the leader, with the remaining replicating that state. Instances may come and go. The server demonstrates how a new leader may be elected in the event of the previous one failing. The server supports client subscriptions and load-balances these amongst the leader/replicas. Client subscriptions are migrated to new nodes in the event of node failures.
- A client application that subscribes the server application for its current state.
0f4d9792-fbaa-488e-a24d-f2ab9ac790c2|0|.0
Tags: