MBOX-Line: From brong at fastmail.fm  Mon Mar  9 06:27:41 2015
To: imap-protocol@u.washington.edu
From: Bron Gondwana <brong@fastmail.fm>
Date: Fri Jun  8 12:34:54 2018
Subject: [Imap-protocol] If Crispin were creating IMAP today how would
 it be different?
In-Reply-To: <7164.1425831184@parc.com>
References: <54FAEB94.4070508@lavabitllc.com> <54FBF289.3010202@psaux.com>
	<7164.1425831184@parc.com>
Message-ID: <1425907661.1215497.237833469.1EDA571D@webmail.messagingengine.com>

On Mon, Mar 9, 2015, at 03:13 AM, Bill Janssen wrote:
> Messages in files is itself kind of old-school.  There's still a place
> for MUA/MDA separation, but perhaps the MDA should just be an SQL or
> NoSQL database; dump all the messages in MySQL.  Then the "access
> protocol" would simply be the appropriate set of queries for whatever
> the client is trying to achieve.  The DB schema would define the
> protocol.

So this is pretty much what JMAP is actually, it's a data model query
and update protocol which is designed around batch operations (and batch
queries) to reduce chattyness.

> Triggers in the DB could do the thread calculation.

Roughly what I'm doing for the non-Gmail case in the JMAP proxy (which
is sqlite3 backed) where I generate an ID from the envelope
datastructure, and then do a messageid lookup on the In-Reply-To (cheap
and nasty implementation, a better one would be what we do in Cyrus)

https://github.com/jmapio/jmap-perl/blob/master/JMAP/ImapDB.pm#L279

https://github.com/brong/cyrus-imapd/blob/07381525b6dcaa57fb1f9110ffec83d3618a0b96/imap/message.c#L3036

> And let the DB guys solve the intermittent connection problems :-).
> Oracle, for instance, has a "Mobile Server" product that synchonizes a
> local cache on a mobile device with a remote Oracle DB, including SSL
> encryption on the sync connection, and data compression.

The problem is, DB protocols are pretty chatty.  And you need to solve
authencation too.

Seriously, I think we've pretty much done what you're suggesting in
JMAP, but we've solved the latency problems that chatty protocols have
when you don't have a nice short piece of solid copper between you and
the server as well.

Bron.

-- 
  Bron Gondwana
  brong@fastmail.fm

