Re: [Jmap] Best vs Good enough - adoption of JMAP

Brandon Long <blong@google.com> Wed, 26 April 2017 22:24 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 6E9B912946C for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 15:24:00 -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 URt2iQoX58Xe for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 15:23:57 -0700 (PDT)
Received: from mail-oi0-x22a.google.com (mail-oi0-x22a.google.com [IPv6:2607:f8b0:4003:c06::22a]) (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 A18391270FC for <jmap@ietf.org>; Wed, 26 Apr 2017 15:23:57 -0700 (PDT)
Received: by mail-oi0-x22a.google.com with SMTP id j201so18064671oih.2 for <jmap@ietf.org>; Wed, 26 Apr 2017 15:23:57 -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=B6fyUz8JbecFdqBXiEMRgCXLuy1qdpqxffyoYNAj+ZA=; b=GkoCjvXvUAb8xFSowrkKSldCTsXazbUVpwTOfciE1duv3YYE2kHLEqNYs5tiJsEt/K ZeyBNg4Vlz7uMSgmCxehhANkOZlAW+1lGbX1HQmuz4MHLxT4wZILt27U1sKCbsyRAr2Q nM9M5XPgZitCApTGPGLloQOVh4fM6Wi/fNvT6qK32N+wbHfNy7JB1Gp8vY4HZh/QA2PQ J/tvmjTxdkUhbisO3iwevz2oBLLGNOExC+AC5sV5RNKV5DdyIfw8vlQwOwkxEQFsn9+B MOzdLg9zJ7saUcaXZDftVthHQJawb6y5vovkjcsoY8kqAmenRPoVVrCiHbgt94IEgbTR WeYA==
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=B6fyUz8JbecFdqBXiEMRgCXLuy1qdpqxffyoYNAj+ZA=; b=SXL7AoAhGwwFsTqrIFeXOeNYYoDdC1u18AHkLevtZsfvsjhCWF3YyeKXvL4VEjcdjD klvooFF5pc96Up2zKs3iL/GSYD/3Slfp4cN1r+Udt4oVpRrQhilpdNBAAEfwPiiJ8tL1 O03K/RRgum5cacAiB4zQMFiPGbTXoR0fr8rSzk/P2viEMqOlv0GV8QD3GqunyyXft/nI ZF0h6koC3bjGIZgC78YS7qvF3TjdcEzcL+hvgSyrdJSYp0j2DNEyyiUF6G3Ky6NlONnP IGJQ3RiLQo0kRcOPHn1o7vZYIi2PAjJrL2E3vEgMNMvP73HgD+DVLvRNiX15H57ZyQoG l2wA==
X-Gm-Message-State: AN3rC/5tyw0LhwrtuM6ADriEUGwfFZLddwxrJIgfL/mKAjF4X9mN7cCS jLBeqPTy3VfOAC6jwO7A5cPzcZcQhSqjnn0=
X-Received: by 10.157.15.205 with SMTP id m13mr1245510otd.6.1493245436624; Wed, 26 Apr 2017 15:23:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.182.8.101 with HTTP; Wed, 26 Apr 2017 15:23:56 -0700 (PDT)
In-Reply-To: <01QDMH1QNOUK00008D@mauve.mrochek.com>
References: <em8b177018-4769-44ea-b033-90bd8155d11b@bodybag> <46F700A6-C2B1-488B-A8B4-6ACD45B03C31@oracle.com> <CFC38D13-0CB2-4ABF-9403-DF0F773314B7@fugue.com> <D35A79C2-3918-4BB7-B97D-D56CA7548DCD@oracle.com> <1493099769.3023399.955193288.6D0312CC@webmail.messagingengine.com> <33553450-82F4-4CB4-8679-C9F52D8A8839@oracle.com> <1493163974.4122214.956244160.6735E49C@webmail.messagingengine.com> <EDCC6149-9222-468E-A17B-DDBA88A52D95@oracle.com> <01QDMH1QNOUK00008D@mauve.mrochek.com>
From: Brandon Long <blong@google.com>
Date: Wed, 26 Apr 2017 15:23:56 -0700
Message-ID: <CABa8R6vy-aBzpEvvCvV7=hzMz459ugFQP6Nyde0cSzewAGE3Cg@mail.gmail.com>
To: Ned Freed <ned.freed@mrochek.com>
Cc: Chris Newman <chris.newman@oracle.com>, jmap@ietf.org, Neil Jenkins <neilj@fastmail.com>
Content-Type: multipart/alternative; boundary="001a113d0c78d050ad054e194b15"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/avukzsuup8cyNJ5pJ8Ict47zjVA>
Subject: Re: [Jmap] Best vs Good enough - adoption of JMAP
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: Wed, 26 Apr 2017 22:24:01 -0000

On Wed, Apr 26, 2017 at 6:45 AM, Ned Freed <ned.freed@mrochek.com> wrote:

> On 25 Apr 2017, at 16:46, Neil Jenkins wrote:
>> > I think there's been some misconception over the intended semantics of
>> > the outbox proposal. The outbox was never intended to be the
>> > submission
>> > queue, with mail queue semantics. It is intended as a standard
>> > mailbox,
>> > with mailstore semantics, because it is where messages go **before**
>> > they are passed on to submission. The server would validate the
>> > message/envelope at the time of moving it to the outbox to ensure it
>> > can
>> > be accepted for submission later of course. If you have existing
>> > mailstore + SMTP infrastructure, implementation is not much more than
>> > having some small demon that triggers to take the message from the
>> > mailstore and submit it to the SMTP queue at the appropriate time.
>>
>
> And as soon as you add that "small daemon" (also known as a mail queue
>> processing daemon), you've now required the mailstore to also have mail
>> queue semantics. This includes key semantics such as: the mail queue
>> daemon has full read / delete access to those messages even when the
>> user is offline. If the delivery doesn't happen when the user expects,
>> the user is going to make a support call, so we now need all the
>> monitoring, logging and robustness that comes with a mail queue. And
>> addresses that were valid at the time the message entered this mail
>> queue can become invalid later, so there has to be bounce-processing for
>> when that happens, etc, etc.
>>
>
> Now take these semantics and multiply them by the number of users you have,
> which can be in the many millions. And while sometimes you can treat
> this as single, system-wide queue for monitoring purposes, sometimes
> you'll need to lookup and probably monitor on a per-user basis.
>
> I also assume there won't be a hardcoded name or location for this special
> use mailbox. So its specialness arises from some sort of attribute. Can
> that attribute be set? Reset? Can it be set on more than one mailbox?
> If not why not?
>
> It's not that I can' think of various possible ways to implement all this
> at
> scale. I can. But none of them are easy.


I think a modern mail store already has need for this type of scheduled
events for many cases, and as such is implemented by many of them.

Off the top of my head, beyond undo send/future send, there is also
automatic emptying of the trash, remind me later, and enterprise style
retention policies.
Once you have such a model, you'll find it useful for a bunch of other
things, such as data migration or applying changes across a very large mail
store.

Brandon