Skip to content

Conversation

@VeskeR
Copy link
Contributor

@VeskeR VeskeR commented Jun 12, 2025

No description provided.

@github-actions github-actions bot temporarily deployed to staging/pull/332 June 12, 2025 08:43 Inactive
@lawrence-forooghian lawrence-forooghian added the live-objects Related to LiveObjects functionality. label Jun 12, 2025
@github-actions github-actions bot temporarily deployed to staging/pull/332 June 12, 2025 23:22 Inactive
* @(PC2)@ No generic plugin interface is specified, and therefore there is no common API exposed by all plugins. However, for type-safety, the opaque interface @Plugin@ should be used in strongly-typed languages as the type of the @ClientOptions.plugins@ collection as per "TO3o":#TO3o.
* @(PC3)@ A plugin provided with the @PluginType@ enum key value of @vcdiff@ should be capable of decoding "vcdiff"-encoded messages. It must implement the @VCDiffDecoder@ interface and the client library must be able to use it by casting it to this interface.
** @(PC3a)@ The base argument of the @VCDiffDecoder.decode@ method should receive the stored base payload of the last message on a channel as specified by "RTL19":#RTL19. If the base payload is a string it should be encoded to binary using UTF-8 before being passed as base argument of the @VCDiffDecoder.decode@ method.
* @(PC5)@ A plugin provided with the @PluginType@ enum key value of @Objects@ should provide the "RealtimeObjects":#RTO1 feature functionality for realtime channels. It must implement the @ObjectsPlugin@ interface and the client library must be able to use it by casting it to this interface.
Copy link
Collaborator

@sacOO7 sacOO7 Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case of ably-java, just including liveobjects dependency using

implementation 'io.ably:ably-liveobjects:1.2.52'

detects the plugin at runtime ( We don't need to supply it as a part of options )
So, not sure if this spec needs to be modified or can be made optional

Copy link
Contributor Author

@VeskeR VeskeR Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current spec does not reflect the plugins systems implemented in other languages indeed, as that is a new addition. Plugins system only existed in ably-js until recently, so we should update the spec based on the decisions we made for ably-java and ably-cocoa

(on a separate note, the plugin should be called objects, not liveobjects , see https://ably.atlassian.net/wiki/spaces/LOB/pages/3819896841/LODR-033+Isolating+API+naming+from+Product+naming+Renaming+state+and+liveobjects+to+objects+in+APIs)

** @(RTP15f)@ If the client is identified and has a valid @clientId@, and the @clientId@ argument does not match the client's @clientId@, then it should indicate an error. The connection and channel remain available for further operations

h3(#objects). Objects
h3(#realtime-objects). RealtimeObjects
Copy link
Collaborator

@sacOO7 sacOO7 Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
h3(#realtime-objects). RealtimeObjects
h3(#realtime-objects). LiveObjects

It seems like we're currently using two different terms for the same feature.
To avoid confusion, calling this as LiveObjects would be more consistent naming wdyt?
Unless, LiveObjects is already being used elsewhere and could cause a naming conflict.

Copy link
Contributor Author

@VeskeR VeskeR Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the name of the feature is Objects, and it must not be called LiveObjects in the client library imlpementation at all, see https://ably.atlassian.net/wiki/spaces/LOB/pages/3819896841/LODR-033+Isolating+API+naming+from+Product+naming+Renaming+state+and+liveobjects+to+objects+in+APIs.

The spec change from Objects to RealtimeObjects this PR adds is explained in commit message ccc5329, but essentially it's to keep consistency with RealtimeChannels, RealtimePresence, and allow us to add RestObjects in the future.
This change only relates to the name of the public class exposed to the end-user. It does not change the property found on a channel: channel.objects returns a RealtimeObjects instance, just like channel.presence returns RealtimePresence

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, will take a look at LODR 👍

Copy link
Collaborator

@lawrence-forooghian lawrence-forooghian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few suggestions, but I don't think we need to spend too long on this PR; we understand that the plugins mechanism is going to vary by implementation and I don't think we need to be exhaustive.

VeskeR added a commit to ably/ably-js that referenced this pull request Jun 19, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
@VeskeR VeskeR requested a review from sacOO7 June 19, 2025 02:41
@github-actions github-actions bot temporarily deployed to staging/pull/332 June 19, 2025 02:53 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/332 June 19, 2025 02:54 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/332 June 19, 2025 03:01 Inactive
@VeskeR VeskeR changed the base branch from main to update-liveobjects-names June 19, 2025 04:29
@github-actions github-actions bot temporarily deployed to staging/pull/332 June 19, 2025 04:30 Inactive
Base automatically changed from update-liveobjects-names to main June 20, 2025 01:17
VeskeR added a commit to ably/ably-js that referenced this pull request Jun 20, 2025
Based on the spec added in [1]

[1] ably/specification#332
Copy link
Collaborator

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

lawrence-forooghian added a commit to ably/ably-liveobjects-swift-plugin that referenced this pull request Jun 24, 2025
lawrence-forooghian added a commit to ably/ably-liveobjects-swift-plugin that referenced this pull request Jun 24, 2025
lawrence-forooghian added a commit to ably/ably-liveobjects-swift-plugin that referenced this pull request Jun 24, 2025
VeskeR added a commit to ably/ably-js that referenced this pull request Jun 26, 2025
Based on the spec added in [1]

[1] ably/specification#332
Also renames feature spec for `Objects` to `RealtimeObjects`.
In the future we may add the REST API support for Objects, and it is
only reasonable to name that `RestObjects`. To stay consistent with the
namings for other features (e.g. RestChannels - RealtimeChannels) we
should rename the spec for `Objects` to `RealtimeObjects`
@VeskeR VeskeR merged commit 1f6dc57 into main Jul 4, 2025
2 checks passed
@VeskeR VeskeR deleted the objects-plugin branch July 4, 2025 08:50
VeskeR added a commit to ably/ably-js that referenced this pull request Aug 21, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Aug 21, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Oct 9, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Oct 9, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Oct 9, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Oct 9, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Dec 9, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
VeskeR added a commit to ably/ably-js that referenced this pull request Dec 18, 2025
… with the naming convention for other realtime features in the SDK

This updates ably-js implementation to match the spec [1]

[1] ably/specification#332
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

live-objects Related to LiveObjects functionality.

Development

Successfully merging this pull request may close these issues.

4 participants