Client Library SDK Improvement
LiveObjects
Version 2.16.0 of the JS Client Library has been released.
This release introduces a redesigned LiveObjects API centered around path-based operations. The new PathObject abstraction provides a more intuitive interaction model where operations resolve at runtime against the current value at a path, rather than being bound to specific object instances.
With this release, the ably-js LiveObjects API is no longer marked as @experimental and is in Public Preview.
Key improvements:
- Resilient subscriptions: Subscribe to paths rather than object instances, so subscriptions automatically follow whatever object exists at that location even when it's replaced.
- Deep subscriptions: Observe changes at any depth below a path with configurable depth control.
- Operation context: Subscription callbacks now receive the complete
ObjectMessagethat triggered the change, including information about the publishing client and operation details. - Simplified object creation: Create deeply nested structures in a single operation using
LiveMap.create()andLiveCounter.create()static methods, eliminating the risk of orphaned objects. - Compact representations: New
.compact()and.compactJson()methods for converting LiveObjects to plain JavaScript objects.
This release contains breaking changes to the LiveObjects API. See the LiveObjects migration guide for detailed instructions on updating your code.
For the full changelog, please visit the GitHub release page.