Repository navigation
This release makes it easier to publish from backend workers. If your server publishes from many concurrent jobs, createRealtimeChannelPool lets them share a small, fixed set of connections instead of opening one per job. If you run Temporal workflows, the new Temporal plugin lets workflow code call the Ably HTTP API directly, and retries and replays don't send duplicate messages.
What's Changed
- Add
createRealtimeChannelPoolto@ably/pubsub-server. A pool holds a fixed set of realtime clients and hands out publish-only channel handles, so a long-running process can publish from many concurrent operations without opening a connection per operation #2340 - Add a Temporal plugin to
@ably/pubsub-server.@ably/pubsub-server/temporalexportsAblyHttpPlugin, a worker plugin that registers an activity for each wrapped HTTP operation, and@ably/pubsub-server/temporal/workflowexportsTemporalAblyHttpClientfor workflow code. Message IDs and idempotency keys are derived deterministically, so retried activities and replays do not publish twice #2325 - Publish a NativeScript build of
@ably/pubsub-deviceunder the@ably/pubsub-device/nativescriptsubpath #2342 - Generate idempotent message IDs for
annotations.publish(),annotations.delete()andbatchPublish()whenidempotentRestPublishingis enabled, so a retried request no longer publishes twice #2330 - Fix
channel.objectmissing from theRealtimeChannelandHttpChanneltypes after importing theliveobjectsentry point of@ably/pubsub-deviceor@ably/pubsub-server#2344