Skip to content

v3.1.0

Latest

Choose a tag to compare

@ttypic ttypic released this 11 Nov 11:39
227db65

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 createRealtimeChannelPool to @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/temporal exports AblyHttpPlugin, a worker plugin that registers an activity for each wrapped HTTP operation, and @ably/pubsub-server/temporal/workflow exports TemporalAblyHttpClient for 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-device under the @ably/pubsub-device/nativescript subpath #2342
  • Generate idempotent message IDs for annotations.publish(), annotations.delete() and batchPublish() when idempotentRestPublishing is enabled, so a retried request no longer publishes twice #2330
  • Fix channel.object missing from the RealtimeChannel and HttpChannel types after importing the liveobjects entry point of @ably/pubsub-device or @ably/pubsub-server #2344