Membership protocol for MirageOS
Mentors: Magnus Skjegstad, Andreas Garnæs
Location: Tarides office, Paris
Membership management is an important component of distributed systems, where it is the foundation of things like distributed consensus, application layer sharding, log replication, etc. SWIM is a scalable membership protocol based on gossip principles that is already seeing adoption in industry (e.g. Consul by Hashicorp and Ringpop by Uber).
The aim of this project is to create a Mirage SWIM task that can run alongside an application task and keeps track of cluster state. The application task can then query the SWIM task about the cluster state, e.g. to issue a request to another node.
It's still early days for the implementation, though it does work in small scenarios on localhost. The initial SWIM implementation for MirageOS is available from mirage-swim
Necessary skills: Some familiarity with OCaml and an interest in distributed protocols and MirageOS/unikernels. Previous experience with networking and distributed systems is useful, but not required.