Re: [Jmap] draft-murchison-jmap-websocket as a JMAP working product

"Neil Jenkins" <neilj@fastmailteam.com> Fri, 23 November 2018 05:56 UTC

Return-Path: <neilj@fastmailteam.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 8AEE6127B92 for <jmap@ietfa.amsl.com>; Thu, 22 Nov 2018 21:56:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level:
X-Spam-Status: No, score=-1.983 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=XmEdCNHM; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=IotkfGc6
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 mTvkLLS4D5xf for <jmap@ietfa.amsl.com>; Thu, 22 Nov 2018 21:56:55 -0800 (PST)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6D9FE1252B7 for <jmap@ietf.org>; Thu, 22 Nov 2018 21:56:55 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 4242222112; Fri, 23 Nov 2018 00:56:54 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Fri, 23 Nov 2018 00:56:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:cc:subject:content-type; s=fm1; bh=3Fb+HE8gIUstFCF5lqJN7n7M9 ubgsh6x2xUzadFAXJs=; b=XmEdCNHMoa4V4gSFcyto6fhZ3Mvs3R9DogUwbSJDx Gi8xr/GfCQ7Hc/y0oxx52qWbFBsjdvGYIUetTbb8djUChGHbbn0esjHvXREH3TxB eCcmyIULL0swPcHbLLTl49FdqQwXckDM9HSgprfsQVVE7Mx+puVdYuIaZtb6UdWR 2blviWXDclOh/xYcETtX74S7kVPatmVuXCkmCQM3rHrbQn5JzYxnwwvdZJpEU9x7 sZDTvzu/vOyOYMnPnALg/B6U0OU8jGIbTVm8kqvifKRqQZ9+s65Zk0U47qYVqNpU xFf/aqPWY4GoC9FlLpVQJzyAggPQZJxUyVD6ZOeVlR1Fg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=3Fb+HE8gIUstFCF5l qJN7n7M9ubgsh6x2xUzadFAXJs=; b=IotkfGc6t/uC7/px4OO+9PLA7mz4AWHiP jArTMKzJT3f4YmoigyWwfbQPWei9zG45F1/9evBUajumuURyUZGt9ClXxWWE4mOb SScNCP7lIOl8J/N/oZhtJqJUHZfgdS4u02Ez4WGrxZDdAIIE9YM3zwulVZio1Eg1 46US4B2wQvaoOBn7NYIJ1GSgWowuN45Z7hyGHILF2wDqix6H3RNe2jigQE4apeN4 aD5/eKFr3pFSbAaq0F+DsF54Rt6vXHUVj+ou0w+mw4KWNlxiRWe0nNKJizFyca/w xC9JKrv8vdaQQCvDjb/wbLNb1sOYSNIqtxGerDmmV+Tuzk7JzJAgA==
X-ME-Sender: <xms:pZb3Wzti8MhIc3Qo9UyiwzTsXhJDpXPrl2PKlscK4897o8vDtS8hYw>
X-ME-Proxy: <xmx:pZb3W3vvPsgYMmBmHJ7wUBDbfA9EzacD8VSyZWOvaGmDnCHYwz_G5w> <xmx:pZb3W_JKlL80XsAvMGzrVU3Vo_R0aH9ZRdDZ01ERzAALZSWhr9OzFw> <xmx:ppb3W_OpP6LbfDhYJIIs_PHMee3BLiI4m-Y9ogWtsXrFf8BZNAkMEA> <xmx:ppb3W0b9D-EqNaKWp3IE8-XVbgqKdvDmQeZ1I1VBmJZIaXBBgLjCGQ> <xmx:ppb3W-voDIMTYkPbYkILHHQbFL1EdNS2Yqj_fgGVnvd9z2AVB0HcSg> <xmx:ppb3W4i-vy6qsW5TNC1zj4zegvNUhegoDfamDTPMxx9PialDk10GjA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id C767C204DC; Fri, 23 Nov 2018 00:56:53 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
Message-Id: <265ec3f1-75b8-43e3-8c52-276b6f6077c6@sloti7d1t02>
User-Agent: Cyrus-JMAP/3.1.5-610-gd7ceb27-fmstable-20181026v1
X-Me-Personality: 64588216
In-Reply-To: <CALaySJLQV8U4P7nk97nVtRz7boArQ0F-dU0B7XYpN8wrfPsMpg@mail.gmail.com>
References: <CALaySJLQV8U4P7nk97nVtRz7boArQ0F-dU0B7XYpN8wrfPsMpg@mail.gmail.com>
Date: Fri, 23 Nov 2018 00:56:53 -0500
From: Neil Jenkins <neilj@fastmailteam.com>
To: Ken Murchison <murch@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>
Content-Type: multipart/alternative; boundary="9b29347889aa43c0a93a32e02fb1143e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/7Gk4J3VlsnHw3qB5qkKr5JMb7do>
Subject: Re: [Jmap] draft-murchison-jmap-websocket as a JMAP working product
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 23 Nov 2018 05:56:57 -0000

We also discussed the open issues at the JMAP session in IETF 103: 
 
>  o Should we allow push notifications over the WS connection? 
 
The consensus in the room was "yes", we should use the connection we already have. We would therefore need to: 
 * Add a tag to each JSON object sent through the socket so we know what it is. I would suggest an `@type` property with values of `"Request"` (sent by the client to the server), `"Response"` and `"StateChange"` (sent by the server for API responses and pushes respectively). (These are the names of the objects in the JMAP spec.) 
 
>  o Should we allow out of order processing of requests? 
 
Again the consensus was "yes"; you can use a single WebSocket connection as the equivalent to parallel HTTP API requests. This means we also need an `id` property on Request and Response objects so they can be correlated by the client.  
 
We probably also need to clarify that the core `maxConcurrentRequests` limit is applies to inflight requests over the WebSocket. We may need a new limit (exposed in the capability object) for establishing concurrent WebSocket connections (although a client shouldn't really need more than 1; that's the point)?
 
Ken, are you able to update the spec and we can publish a new version as a JMAP working group product? Thanks. 
 
Neil.