A distributed IMAP server based on Conflict-free Replicated Data Types.
2.4K
Pluto is a distributed IMAP server that implements a subset of the IMAPv4 standard. It makes use of Conflict-free Replicated Data Types (operation-based style) defined by Shapiro et al. to replicate application state into traditionally stateless tiers (worker nodes) and still achieve system-wide convergence of user data. By this, pluto attempts to offer a solution towards the challenges arising from Brewer's CAP theorem: in case of failures in the system, choose to stay available by accepting reduced consistency in form of the CRDTs' strong eventual consistency. We described our system architecture, the modelled IMAP operations based on OR-Set CmRDTs, and a response time evaluation of this prototype compared to Dovecot in our paper called "pluto: The CRDT-Driven IMAP Server", presented at PaPoC 2017.
Pluto is written in Go and provided under copyleft license GPLv3.
Please see the full README here: https://github.com/go-pluto/pluto
Content type
Image
Digest
Size
6.4 MB
Last updated
about 9 years ago
docker pull gopluto/pluto