Re: [imap5] Designing a new replacement protocol for IMAP

Bron Gondwana <brong@fastmail.fm> Mon, 13 February 2012 16:23 UTC

Return-Path: <brong@fastmail.fm>
X-Original-To: imap5@ietfa.amsl.com
Delivered-To: imap5@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A4AD721F853E for <imap5@ietfa.amsl.com>; Mon, 13 Feb 2012 08:23:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.534
X-Spam-Level:
X-Spam-Status: No, score=-3.534 tagged_above=-999 required=5 tests=[AWL=-0.065, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1, SARE_RMML_Stock10=0.13]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rMTW6OeSro6i for <imap5@ietfa.amsl.com>; Mon, 13 Feb 2012 08:23:36 -0800 (PST)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by ietfa.amsl.com (Postfix) with ESMTP id 3233921F853B for <imap5@ietf.org>; Mon, 13 Feb 2012 08:23:36 -0800 (PST)
Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 12B0020802 for <imap5@ietf.org>; Mon, 13 Feb 2012 11:23:35 -0500 (EST)
Received: from frontend1.nyi.mail.srv.osa ([10.202.2.160]) by compute2.internal (MEProxy); Mon, 13 Feb 2012 11:23:35 -0500
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.fm; h= date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=mesmtp; bh=3F6bOXcF0ButalwFIdTlqnnj TC0=; b=WuQFXy+TZbWXHw7wtpMoX+yoLY0E1BEonDd3s+D7BbjxCI7hpaOn1ikT DFqir4VBK05ILveKu0sfpl/oFDIF4PfjofI+wVld89kPqEVaOxv9FiqoW/2tR4H0 QSnU8cTd/5HWvjynVHFV5nZhUc6dDkauY5spy1dDIMA/c9gDiCM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=date:from:to:cc:subject:message-id :references:mime-version:content-type:in-reply-to; s=smtpout; bh=3F6bOXcF0ButalwFIdTlqnnjTC0=; b=iZ4WfmGoah2V7Qz6ImKs4PLnGOdw /PvVhXXeryqD1FflF9G+EI4aNeQ1shD9+9cYLal7RcUyrWZsuWUp8LFHJd+dMkXC 1Pzkt24CNrYwtZ34/wPyZvGiytrp7Y5e79JiJuTvxeBE1e2UGZCbv5nHVet1v/yS jjc/+GjpPR0X97U=
X-Sasl-enc: JXkgpSt6eD+G7VTTp1jayD3ub4qwKiZbBdkuqoQxeQaT 1329150214
Received: from localhost (99.249.9.46.customer.cdi.no [46.9.249.99]) by mail.messagingengine.com (Postfix) with ESMTPSA id C149B8E00DA; Mon, 13 Feb 2012 11:23:34 -0500 (EST)
Received: by localhost (Postfix, from userid 1000) id 42E4D1948A0; Mon, 13 Feb 2012 17:23:33 +0100 (CET)
Date: Mon, 13 Feb 2012 17:23:33 +0100
From: Bron Gondwana <brong@fastmail.fm>
To: Cyrus Daboo <cyrus@daboo.name>
Message-ID: <20120213162333.GB28443@launde.brong.net>
References: <1328732126.32086.140661033971485@webmail.messagingengine.com> <201202090820.28260.thomas@koch.ro> <4F337E61.5040702@qbik.com> <201202101544.51364.thomas@koch.ro> <833EE8EEE88E4ADE5CDDDADB@caldav.corp.apple.com> <4F3835A1.7060804@qbik.com> <B764BD8C8B6047E659EABBE2@caldav.corp.apple.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <B764BD8C8B6047E659EABBE2@caldav.corp.apple.com>
Organization: brong.net
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: imap5@ietf.org
Subject: Re: [imap5] Designing a new replacement protocol for IMAP
X-BeenThere: imap5@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion on drastically slimming-down IMAP." <imap5.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imap5>, <mailto:imap5-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imap5>
List-Post: <mailto:imap5@ietf.org>
List-Help: <mailto:imap5-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imap5>, <mailto:imap5-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2012 16:23:38 -0000

On Mon, Feb 13, 2012 at 10:20:45AM -0500, Cyrus Daboo wrote:
> I disagree because what I envisage for the generic notification
> service is an OS-level api (supplied by OS or 3rd party libraries)
> that implement the "internet push service protocol". What that means
> is that client developers only have to implement a simple api to get
> push notifications. What is more anyone implementing more than one
> protocol in their client (e.g. IMAP, CalDAV and CardDAV) would only
> have to implement that once, albeit with some minor differences in
> regard to how to get protocol specific pieces for registering for
> notifications.

That's my vision too.  Ideally not pushing a full data feed, but
just a "ping, there's new stuff for you".  Otherwise you wind up
embedding every other protocol inside this protocol, which is
too meta, even for me.

> Your point about actually getting this done is valid. But
> realistically, do you really think IMAP5 is going to deploy
> overnight? Frankly, anyone who has a reasonably solid IMAP4
> implementation today is going to question the need to work on
> something new, particularly if that something new brings nothing to
> the table (and simply fixing interop problems will probably not be
> seen as something "new"). If you can actually show that IMAP5 adds
> significant value by doing things like helping centralize push
> notifications, simplifying submission etc, then maybe, just maybe,
> those existing implementors might actually consider throwing out
> their current investment in IMAP4 for the new thing. But, IMHO, you
> are really going to have to up-sell IMAP5 to get buy-in from the
> major email providers. Now that does not mean it is not worth doing,
> but it does mean having to do more than just fixing perceived or
> real deficiencies.

Absolutely agree.  We need a hook to make it worthwhile, and I
think submission and reliable push notifications are the hook.

I've updated my RFC list from a simple text file which generates
the list.  Makes it easier to add new items :)  Of course it means
I miss any changes that anyone else makes to the wiki now - so I'll
have to write a reverse parser too so I can see a diff first.

The tricky bit is that the providers for whom it's going to be the
most work are the ones who aren't already doing the LEMONADE profile,
since that requires the sort of datastructures that would support
the things I want to do with re-syncable state.

Bron.