Re: [imapext] [ietf-smtp] Fwd: Request to form a new WG: JMAP

Bron Gondwana <> Wed, 16 November 2016 01:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4AAC31293F9 for <>; Tue, 15 Nov 2016 17:03:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key) header.b=Fx7tbglT; dkim=pass (1024-bit key) header.b=sh5SJORd
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id xwaFwBHvObWb for <>; Tue, 15 Nov 2016 17:03:02 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id D760C129412 for <>; Tue, 15 Nov 2016 17:03:01 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal []) by mailout.nyi.internal (Postfix) with ESMTP id 554EB20B66 for <>; Tue, 15 Nov 2016 20:03:01 -0500 (EST)
Received: from web4 ([]) by compute6.internal (MEProxy); Tue, 15 Nov 2016 20:03:01 -0500
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=mesmtp; bh=GBorE2tE+35LHyw8afDvXXNQE0 c=; b=Fx7tbglTHEOZqKE4FhASfLWOUI50uFmd6x/450krLKxAJhfBAF9Wq1vStW QF0h5p3rX1f4D1OrnnD5tKTBWsxKCVD086GK2ZHBjdk7y8NDxvoMLyrJ5kfDt4gH rHDZXssSO6DGPiKn8qkRM4dNCDCHc477u2qWSGwX+BPm2dFcc=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=smtpout; bh=GB orE2tE+35LHyw8afDvXXNQE0c=; b=sh5SJORdn2UZA8iyFUL8KqmrQgadCQwjQ7 S5YKVJuFYx7WVkVeh/bns7yY8eAjyr51/A1zN9hn1EdlnSCs/i4JONVW65IaUtQo cSocarjIdQ8DKUI5kk5arBhdafnFPpsONRkmGQLCpM1VKxnJLYLQsrES1bxbpsZ8 B+fMwM7E8=
X-ME-Sender: <xms:RbArWCjpSd8KoAY1GwpjFVCKd_SyDZlarpK9F458WHBQ4BuUJElFiQ>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 2C435BAB82; Tue, 15 Nov 2016 20:03:01 -0500 (EST)
Message-Id: <>
From: Bron Gondwana <>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
X-Mailer: Webmail Interface - ajax-461bce03
In-Reply-To: <>
Date: Wed, 16 Nov 2016 12:03:01 +1100
References: <> <> <56DA516EAC53C07E3F453BA6@JcK-HP8200> <> <> <5F4EE3F805C40EF25D1E0E57@JcK-HP8200> <> <> <>
Archived-At: <>
Subject: Re: [imapext] [ietf-smtp] Fwd: Request to form a new WG: JMAP
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussion of IMAP extensions <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Nov 2016 01:03:03 -0000

On Tue, 15 Nov 2016, at 17:38, Ned Freed wrote:
> > I agree with almost everything you said here, Ned, except for the idea that
> > offline isn't important. For those of us who travel internationally, being
> > able to look up travel info on your phone before you have your
> > international SIM is crucial, and this is just one example of a situation
> > where this is important.
> There's a difference between being able to operate offline and a protocol
> specifically designed to support offline operation.

There are two really nice things in JMAP for offline operation:

1) client-generated IDs and server-generated IDs are different.  offlineimap does some magic with negative values for UIDs because it can't generate server-side IDs.  This is similar, but
2) you can refer to client-side IDs during a batch command, so you can backreference a mailbox you just created when adding messages to it, so you don't need to try to generate IDs locally and either have to use UUIDs for everything or risk clashes.

And of course everything is by unique ID rather than names, so you don't get problems like the a folder being renamed to something else and then recreated with a new UIDVALIDITY while you were offline, which breaks offlineimap completely, and probably causes mail loss in other clients.  With JMAP and a server which retained ID during renames, the added or changed messages would still apply into the new folder when the updates were applied.

JMAP is quite friendly to the idea of just storing JMAP setFoos commands in a log and then playing them against the server on reconnect, as well as the more clever approach of fetching everything from the server first and then resolving your changes into a minimal set of patches.

  Bron Gondwana