ably / specification

The Ably features spec for client library SDKs.
Apache License 2.0
0 stars 4 forks source link

Deltas: specify what client libraries must do when no Vcdiff plugin passed in #45

Open SimonWoolf opened 4 years ago

SimonWoolf commented 4 years ago

An unexpected implication of https://docs.ably.io/client-lib-development-guide/features/#RTL18 is that if you fail to pass in a vcdiff plugin at all, everything still seems to work apart from seeing a bunch of error logs, because you end up with the reattach procedure being done on every message.

We should not do the recovery procedure if we get a delta when we don't have a vcdiff plugin. We could instead either

  1. just discard the message and log an error, or
  2. set the channel state to failed

@QuintinWillison @paddybyers wdyt?

related: https://ably.atlassian.net/browse/SDK-38

┆Issue is synchronized with this Jira Task by Unito

QuintinWillison commented 4 years ago

I think it's got to be option 2. Log/discard just feels reckless, perhaps more dangerous than the current state of operation... if the channel's sending deltas then we need to commit to receiving them - once that stream is broken the server doesn't know so the channel's going to be trash, right?

paddybyers commented 4 years ago

If you ask for the delta param, but don't have the plugin, what happens?

Assuming that check exists and ought to prevent you getting further, then if you get so far as receiving a delta message and attempting to decode it, and you don't have a plugin, then (2) is fine.

sync-by-unito[bot] commented 1 year ago

➤ Automation for Jira commented:

The link to the corresponding Jira issue is https://ably.atlassian.net/browse/SDK-2787