Re: [Jmap] Submission

Brandon Long <blong@google.com> Thu, 20 April 2017 04:37 UTC

Return-Path: <blong@google.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 DA87012940E for <jmap@ietfa.amsl.com>; Wed, 19 Apr 2017 21:37:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 nykS3A14ho8B for <jmap@ietfa.amsl.com>; Wed, 19 Apr 2017 21:37:00 -0700 (PDT)
Received: from mail-oi0-x22c.google.com (mail-oi0-x22c.google.com [IPv6:2607:f8b0:4003:c06::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C9E5E127B52 for <jmap@ietf.org>; Wed, 19 Apr 2017 21:37:00 -0700 (PDT)
Received: by mail-oi0-x22c.google.com with SMTP id y11so1592401oie.0 for <jmap@ietf.org>; Wed, 19 Apr 2017 21:37:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=GAssqmoVnVL8aBJ2ALRjw2OWymXaEBVnZ4ycjjyEfUI=; b=Uu8SyIikwIkuCKwdy3gRD9GmdX0lkb53/bwUagETzRfDZ5eIQYBsEz9tbWD/J2Sa2r MoT8sgo9GKKuxUniDgPGw9mH4tsvZ8cS1+aDy5rK1Oh6J8SL+Md+5l3C6zEklZoBHAgN jmeev+exPDge+8BJxFEk+T5wUmQr1zepuyrBWRB4tjtLa2OMJjTZO2cLe4h2k9nNzUf2 8slPqysjB6vmZRpUwac+O1xqQmWHo7jL5E8USGRTg1Ee09GaLX0NPhfESvHghsUTfrsa 9MR0OlP91iYIVbur85UJ/Y7ad1m15+9TN6Gjj9u3zTAGlXZO7eNq5pNJYAYx4CDZy+Qn Q3Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=GAssqmoVnVL8aBJ2ALRjw2OWymXaEBVnZ4ycjjyEfUI=; b=bErVd2w+lwWhNXl3WoNrXI7pjdFREdz22ZVkft3VlJ6BTVvsVG2iyOLWhdMhXONdvG efN0u61RhZDvpuV5cu3LP0bN1XU7tuii6Z/k7kyz2KEXq0nR3DFuVvStPczF9TVADD26 bl75lZHXf+0K49Nax56sStLQuuBn/bkUck2L/cWD2egDhFPuF8OWGxzjWyRprX8Ds612 1N2yKyYQm5R/rkQkRNi39K2qcNvvQ9Qhr7SfrzgRpKrTSuyuzk5E9MECbJ/JR7+iJlcP QWxecfS/01mC3EKkv5KYEORnWm56WPMiXTGkrswgxny2lFBUye4igKqeDH2qyOstCYYp Hdvw==
X-Gm-Message-State: AN3rC/5HgIcMqezWCLU/0qbcBmHsO/GgSFOq7EFNDFLDe0bOeaxqFvej cCJ+mCTsbBeFYAoODwYXvFa0Eqvzr+nJ
X-Received: by 10.202.216.84 with SMTP id p81mr3003692oig.193.1492663019760; Wed, 19 Apr 2017 21:36:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.182.120.72 with HTTP; Wed, 19 Apr 2017 21:36:58 -0700 (PDT)
In-Reply-To: <AECE5A39-67D9-4D92-8E82-DBB8F0C572D3@oracle.com>
References: <em27fa7b29-5584-44f3-aa88-086ce734ab59@bodybag> <096E2D4B-D7ED-4439-BB6F-7944892D2ACA@oracle.com> <89E217B2-A700-498C-BA72-3FD9939F34C7@fugue.com> <B1563B04-AA25-47CA-9D63-D8B6CD4B3257@isode.com> <AECE5A39-67D9-4D92-8E82-DBB8F0C572D3@oracle.com>
From: Brandon Long <blong@google.com>
Date: Wed, 19 Apr 2017 21:36:58 -0700
Message-ID: <CABa8R6vZ3g4zXtHUSYTnqrKZXZrz_kcHiHLpFeytY7t5cNeJsA@mail.gmail.com>
To: Chris Newman <chris.newman@oracle.com>
Cc: Alexey Melnikov <alexey.melnikov@isode.com>, "jmap@ietf.org" <jmap@ietf.org>, Ted Lemon <mellon@fugue.com>
Content-Type: multipart/alternative; boundary="001a113d28301069d0054d91b1f4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/TYWZHdRGL2pTf-CQI31JN5gMYd4>
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 04:37:03 -0000

On Wed, Apr 19, 2017 at 7:05 PM, Chris Newman <chris.newman@oracle.com>
wrote:

> On 19 Apr 2017, at 13:38, Alexey Melnikov wrote:
>
>> > On 19 Apr 2017, at 20:36, Ted Lemon <mellon@fugue.com> 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?
>>>
>>
>> It is not clear to me why a queue can't be also a mailbox. Interfaces
>> seem to be pretty similar for both.
>>
>
> The architectural requirements of a mail store and mail queue are very
> different. For comparison:
>
> Mail store
>  * data is "owned" by the end-user
>  * long-lived small & large objects
>  * write-once, read-multiple, important dynamic metadata (flags &
> annotations)
>  * quota-based administrative limits
>  * over quota is flagged for statistics but not an operational problem
>  * for security, read can be restricted to only work when the end-user
> authenticates
>  * final delivery agent can be limited to append-only access
>  * data for different users must be kept separate with ACL restrictions
>  * random access is important; message metadata must be cached for
> efficiency
>
> Mail queue
>  * data is "owned" by the delivery system
>  * short-lived small & large objects
>  * write-once, normally read+delete once, largely static metadata
> (envelope)
>  * generally no administrative limits (or limits are imposed at submission
> time)
>  * large queue indicates operational problems, needs to flag a monitoring
> system alert
>  * for security, all read/write access can be restricted to delivery
> agent; no need for ACL complexity
>  * data for different users can be combined for efficient queuing.
>  * sending messages for different users over the same SMTP relay channel
> improves privacy by making traffic analysis harder
>  * access follows queue pattern; many need to cache envelope metadata for
> efficiency but message metadata is not cached
>
> It possible to implement something that provides the union of the required
> semantics. But combining the semantics creates security and privacy
> constraints, adds monitoring complexity to the deployment, and removes a
> bunch of potential optimizations.
>
> So I object to JMAP if it requires me to implement something combining
> mail store and mail queue semantics. The protocol design needs to allow
> implementations with clean functional separation between mail queue and
> mail store.


My understanding of an "outbox" is typically "the message is here when I
want it submitted to the mail queue, and removed when that submission has
been accomplished".

Ie, on disconnected clients, this is often where messages are stored
locally before they can be submitted via MSA.

So, the outbox / jmap wouldn't require mail queue semantics, it's not the
mail queue, it's the precursor to the mail queue.

A more advanced solution might be for the message to be in the outbox for
the entire time it's in the mail queue.  I wouldn't implement them as one
and the same, but move a message from the outbox to the sent folder (on
success) or back to drafts or something (on failure) when the message has
exited the mail queue.  Ie, you could use DSN from the mall queue back to
the mail store to cause the messages to move folders.  I don't think anyone
is suggesting this is required for jmap, though.

I often considered something like that for Gmail, as it eliminates the
confusion people often have that a message may be pending in our mail
queues for days.  It does require a fairly integrated system, however.

Brandon