Subject: [core] PUBSUB-08: Semantics of 4.29 response

From: Christer Holmberg <[email-masked]>
Date: Wed, 24 Jul 2019 10:43:04 +0000

Hi,

I have a question regarding the semantics of the 4.29 response code.

Section 4.3 says:

   “A Broker MAY return "4.29 Too Many Requests" if simple flow control as
    described in Section 7 is implemented.”

…and:

    ”Failure:  4.29 "Too Many Requests".  The client should slow down the
     rate of publish messages for this topic (see Section 7).”

Section 7 says:

   “If the broker is unable to serve a certain client that is sending
   publish messages too fast, the broker MUST respond with Response Code
   4.29, "Too Many Requests".”

Then, section 7 says that the Max-Age is used to indicate when the client can retry to publish the message.

----

Q1:

It is unclear what 4.29 means:

  *   Based on the text in section 4.3, it means that the client should generally slow down the rate of publish messages associated with the topic
  *   Based on the text in section 7, it means that the client should wait for a while (indicated by Max-Age), and then it can continue publishing messages as before, with the *same* rate as before.

I think this needs to be clarified.

Also, wouldn’t it be useful to have separate response codes for the different cases: one response code for please-wait-and-then-send-again and one for please-slow-down.

----

Q2:

It is unclear whether Max-Age is mandatory in 4.29. If it is, I think there should be a MUST somewhere. If not, I think there should be some text regarding the client behavior.

Regards,

Christer

---

From: Christer Holmberg <[email-masked]>
Date: Wed, 24 Jul 2019 11:01:19 +0000

Hi,

I realized that Q2 is answered in RFC 8516, so please discard that.

Regarding Q1, section 4 of RFC 8515 also only talks about the client waiting for a while, and then continue sending messages. There is no client text regarding reducing the rate of the messages.

Section 3 of RFC 8515 does have some words about too-frequent being the reason for 4.29, and sending 4.29 to “slow down” the client. But, again, it says that Max-Age is used to indicate how long the client should wait before sending again – it does not talk about reducing the rate in general.

Regards,

Christer

From: core <[email-masked]> on behalf of Christer Holmberg <[email-masked]>
Date: Wednesday, 24 July 2019 at 13.43
To: "[email-masked]" <[email-masked]>
Subject: [core] PUBSUB-08: Semantics of 4.29 response

Hi,

Section 4.3 says:

…and:

Section 7 says:

----

Q1:

----

Q2:

Regards,

Christer