go-pluto / pluto Goto Github PK
View Code? Open in Web Editor NEWA distributed IMAP server based on Conflict-free Replicated Data Types.
License: GNU General Public License v3.0
A distributed IMAP server based on Conflict-free Replicated Data Types.
License: GNU General Public License v3.0
I read through your paper "Designing a Planetary-Scale IMAP Service with
Conflict-free Replicated Data Types" but it does not seem to deal with UID assignment amongst replicas?
The IMAP spec requires that a client only ever see the UID of a mailbox to be strictly increasing.
If multiple masters are assigning UIDs, they could ensure uniqueness by using non-contiguous UIDs (e.g. one replica assigns odd UIDs, while another replica assigns even UIDs), yet when these UIDs are replicated to all replicas, clients may see EXISTS for UIDs lower than the latest, and would fail to download these messages.
Are you otherwise using a consensus protocol like Paxos or Raft?
I had hoped your paper would have gone into more detail on UIDs, since this seems to be the big issue with making IMAP truly multi-master.
I would be nice to have a .codeclimate.yml
which lints our code for fundamental mistakes in Go.
engines:
gofmt:
enabled: true
golint:
enabled: true
govet:
enabled: true
ratings:
paths:
- "**.go"
exclude_paths:
- "vendor/"
I presume this allows offline edits ?
It's great to see more crdt examples.
I am wishing to build an actual email editor for mobile that uses crdt. Hence why I ask about offline support.
Thanks again for putting up !
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.