Re: [Webpush] Message update PR

Martin Thomson <> Mon, 11 January 2016 23:57 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id E74B61A888B for <>; Mon, 11 Jan 2016 15:57:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 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, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id w0ou84MlWdSx for <>; Mon, 11 Jan 2016 15:57:22 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4001:c05::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2FA3B1A877A for <>; Mon, 11 Jan 2016 15:57:22 -0800 (PST)
Received: by with SMTP id t15so108005026igr.0 for <>; Mon, 11 Jan 2016 15:57:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JxbshI8DtDb6uXlvrcmbMKLLPmL6aSu4OXDf+jUIpAU=; b=K6oglMrqq6I+EJE6lbJDkGIYodid1nyhYB63Z2UO1/vj7SPo7qR4hSpIwdBVPTSzSJ CHFOgyMGSexvSmI6d+5mTn7tRVPIp7nbICAmje7Oljsh8InrYrtaKcL/it8F+nLvTJE7 acwDa0NShgNCjlA76vkigkTi/vKT56BXBphxCtBIjDEmsaEN7SIDhFLzojNXcAOlBRvp cabsbb/ypUyjX4kIgDFCaF0aeAJ4VJsdRfQZlKCgaSC8zKeJK61gXZKMy0q/wJJ6Ut/o 1S7Yik1kw8lnOw5F6sfyHqTuVhqLC8A1fOkkBavObGRGrcUsQ1hNALKzkrdruQjvZmxw w3og==
MIME-Version: 1.0
X-Received: by with SMTP id d6mr15621667igr.94.1452556641566; Mon, 11 Jan 2016 15:57:21 -0800 (PST)
Received: by with HTTP; Mon, 11 Jan 2016 15:57:21 -0800 (PST)
In-Reply-To: <>
References: <> <> <>
Date: Tue, 12 Jan 2016 10:57:21 +1100
Message-ID: <>
From: Martin Thomson <>
To: Costin Manolache <>
Content-Type: text/plain; charset=UTF-8
Archived-At: <>
Cc: Brian Raymor <>, "" <>
Subject: Re: [Webpush] Message update PR
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 11 Jan 2016 23:57:24 -0000

On 12 January 2016 at 04:00, Costin Manolache <> wrote:
> - +1 in general
> - Doubts about the name "Topic" - many pubsub users will be confused, it is
> not really a topic,
> just a key

I'm happy to take suggestions on the name, it's just a name :)

>From my perspective however, the pubsub use fits almost perfectly with
this use, so I think that the name is a bit of an advantage.

> -  We may relax the '4 collapse keys' limit for GCM, shouldn't be a problem
> for webpush.

That would be awesome (I hear that collapse keys are very heavily used
by some big sites, I wonder if you aren't already feeling the pressure

> Can we change a bit the wording to allow some optimizations we do: a message
> with topic (collapse
> key) may be optimized for 'sync usage' - i.e. even if the device is online,
> if push service detects
> frequent messages in a topic (for example user receives lots of email) it
> may delay and collapse
> messages. I.e. not only " If the user agent is offline".

That should always be possible.  If the text implies otherwise, then
we should correct that.

> Also I would prefer (for implementation purpose) a simpler ID syntax instead
> of quoted string.
> It's going to be a database key, short an unambiguous seems better. URI path
> component would
> be nice.

Would the base64(url) alphabet suit you well enough?  I didn't add
that restriction.

What about a length restriction?  I think that Ben and I discussed
just rejecting push messages with ridiculously long topic names.

> Finally, a more generic approach would be to allow the sender to specify a
> MessageID - than
> multiple messages with the same ID could override each other ( identical
> with topic ), but the main
> benefit is that senders will avoid a lookup and mapping push-service IDs to
> their internal IDs in
> acks. Push service can internally combine the subscription ID with the
> sender-provided message ID.

Maybe I'm not understanding you here, but isn't that exactly what this
change does?