Re: [Jmap] Submission

"Chris Newman" <chris.newman@oracle.com> Thu, 20 April 2017 01:28 UTC

Return-Path: <chris.newman@oracle.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E2A3912E852 for <jmap@ietfa.amsl.com>; Wed, 19 Apr 2017 18:28:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.222
X-Spam-Level:
X-Spam-Status: No, score=-4.222 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oUXkBAF2b44f for <jmap@ietfa.amsl.com>; Wed, 19 Apr 2017 18:28:42 -0700 (PDT)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 93357129C2B for <jmap@ietf.org>; Wed, 19 Apr 2017 18:28:42 -0700 (PDT)
Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v3K1SfEP006870 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <jmap@ietf.org>; Thu, 20 Apr 2017 01:28:41 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id v3K1SfKj007349 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <jmap@ietf.org>; Thu, 20 Apr 2017 01:28:41 GMT
Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id v3K1Sesd013883 for <jmap@ietf.org>; Thu, 20 Apr 2017 01:28:40 GMT
Received: from [10.154.116.81] (/10.154.116.81) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 19 Apr 2017 18:28:40 -0700
From: Chris Newman <chris.newman@oracle.com>
To: "jmap@ietf.org" <jmap@ietf.org>
Date: Wed, 19 Apr 2017 18:28:39 -0700
Message-ID: <C987AD7A-84F0-4400-B418-77C58C0827C9@oracle.com>
In-Reply-To: <89E217B2-A700-498C-BA72-3FD9939F34C7@fugue.com>
References: <em27fa7b29-5584-44f3-aa88-086ce734ab59@bodybag> <096E2D4B-D7ED-4439-BB6F-7944892D2ACA@oracle.com> <89E217B2-A700-498C-BA72-3FD9939F34C7@fugue.com>
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"
X-Mailer: MailMate (1.9.6r5347)
X-Source-IP: userv0022.oracle.com [156.151.31.74]
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/9r7_WDNwG4kjZnDU_RQCcYSc3xQ>
Subject: Re: [Jmap] Submission
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Apr 2017 01:28:44 -0000

On 19 Apr 2017, at 12:36, Ted Lemon wrote:
> On Apr 19, 2017, at 3:29 PM, Chris Newman <chris.newman@oracle.com> 
> wrote:
>> When deploying a large mail service it's important to keep the 
>> submission mail queues (which have management/monitoring issues) 
>> functionally separate from the mail store (which has very different 
>> management/monitoring issues). If the JMAP design requires a mail 
>> queue to be present on the JMAP server or present in the mail store, 
>> that is an unacceptable protocol design error as it hinders the 
>> manageability of large deployments.
>
> Isn't this just an implementation detail?   IOW, how is it different 
> to have a different protocol for queuing messages, versus having 
> different handling for a mailbox with a specific name?

Not at all. Protocols can either be architecture neutral or impose an 
architecture on the system. An example where IMAP imposed an 
architecture on the system is the \Deleted flag and EXPUNGE command. 
This requires a server mail store to have a concept of deleted messages 
within a folder; something that doesn't fit well if the mail store had a 
"trash folder" model. And while it's possible to implement a virtual 
trash folder in a mail client using the \Deleted+EXPUNGE model so this 
wasn't a UI-constraining protocol design error, it turns out that 
clients didn't do that and decided to ignore the IMAP base spec 
semantics and impose the trash folder model on IMAP servers. That 
interoperates badly without correct implementation of RFC 6154 on all 
clients. So that's an example of a protocol design error imposing 
architectural constraints that resulted in real world problems.

To clarify my point, I think having an "outbox" with combined mail store 
and mail queue semantics as a mandatory architectural element of JMAP is 
a protocol design error because it breaks functional separation. And 
that violation of functional separation is particularly problematic in 
larger deployments where mail stores and mail queues each add management 
and monitoring complexity and require different designs and storage 
models to scale effectively.

JMAP needs to have a submission action that has semantics matching the 
IETF Submission standard. It's fine for that command to pull data from 
the mail store as part of the submission action (as RFC 4468 does). But 
the JMAP protocol needs to allow implementations where mail queue and 
mail store semantics are separate.

		- Chris