[VPM] multi-master email clients

Darren Duncan darren at darrenduncan.net
Sun Nov 30 16:39:26 PST 2008


Hello,

I was thinking of something that might be an interesting thought experiment, 
maybe, or request for info etc.

Something I was thinking would be very valuable to me, and probably many other 
people, is for an email client to function sort of like a distributed version 
control system.  I have a lot of important information in email archives and I 
like to minimize the risk to those and new messages.

What I mean is, say the ability to set up multiple PCs that you own where each 
one has a complete working copy of all your email (locally stored like what a 
POP client does, or an IMAP client could optionally do), and you could sit down 
at any of the PCs and open your email client like normal, but anything you send 
or fetch from your mailbox while there will also end up on the other PCs, so if 
you then moved there it would be as if you did the previous work there.

I'm writing partly to ask if any of you know of prior art in this area, perhaps 
used in a corporate setting but not necessarily.

Otherwise, I was thinking I wanted to program a database system that could make 
this functionality work for emails.  It could then be hooked into existing email 
clients, Thunderbird say, to use as their message store.

So what's the problem with conventional email clients that I'm aware of?

First of all, addressing typical POP clients (I'm experienced with Eudora and 
Thunderbird mainly):  These have the advantage of maintaining a local copy of 
all your email so you can then keep your own backups etc of it or browse it 
offline.  The problem is that these are effectively tied to a single PC, and if 
you want to work with all that saved email from another machine, you have to 
copy or remote-map the directories.  If emails are deleted from the server when 
downloading them, or otherwise the server state is changed, then you have to be 
careful to clone back and forth between your local PCs or otherwise be careful 
to never do anything with your mail on the copy that isn't the current one, lest 
some messages be forgotten.  And you get the same sort of problem if you want to 
open a backup copy of your mail dirs, having to be careful to not check mail by 
accident while this copy is open.  Even with a remote map that just has a single 
copy of local dirs, AFAIK you can only have your email client actually open on 
one machine at a time that is using those local copies.

Second of all, addressing conventional webmail or IMAP clients:  These have the 
advantage of simultaneous access from multiple local PCs, and you don't have 
multiple versions or cloning to worry about.  However, space on webmail accounts 
for messages is considerably more limited, and also you are dependent on the 
other provider for keeping your messages adequately backed up and available; you 
don't have local copies for your own backups, or if you did they aren't treated 
equally.

What I want is an email client system with these features:

1.  Multiple locations with complete working copies of all sent and received 
mail messages, where every one is a 'master' like a Git repository, and can 
stand alone for use or recovery in the absence of any other copies.

2.  Easy synchronization of the multiple copies.

3.  You can use either an easy GUI or web client (or terminal), like a more or 
less normal email client.

4.  It needs to be multi-platform, eg run on Linux and Mac OS X.

A lot of the principles are also applicable to other kinds of databases, say 
bookkeeping or inventory or genealogy or what have you, that people typically 
use, but I was thinking of email as a specific short term use case that affects 
me.  The email case is also special compared to the other in that it has the 
extra issues of sending and receiving with separate server mailboxes that are 
not necessarily thought of as the working copies.

I thought this matter would be something you can help me with.  For example, do 
you know of any existing programs that already provide this functionality, or 
any in-development projects to accomplish this?  Or, would any of you be 
interested in working on such a programming project with me or extending an 
existing email client like Thunderbird to do it?

Thanks for any info.

-- Darren Duncan


More information about the Victoria-pm mailing list