Message Delta Compression reduces the bandwidth required to transmit realtime messages by sending only the changes from the previous message to subscribers each time there’s an update, instead of the entire message.
Let’s say the first message sent over a channel is 16KiB and the message after that is the same but with an additional 4KiB of new data. With Delta Compression that message will have a payload of only 4KiB instead of 20KiB.
This reduces bandwidth costs, improves latencies for end-users, and simplifies development by taking care of message size optimization.
Message Delta Compression is a stable feature: we expect it to be forwards-compatible with future Ably updates.
Using Message Delta Compression with an Ably Client Library SDK
When we released Channel Rewind we introduced channel parameters, expressed as a query string in the connection request or channel name itself. This was a first step to specifying parameters on a per channel basis.
With Ably’s 1.2 Client Library SDKs, available today, there’s now a proper ChannelOptions interface to express channel parameters, of which there are three:
deltato enable Message Delta Compression
rewindto enable and specify Ably’s existing Rewind functionality
cipherParamsto manage encryption on a channel
The libraries available in this 1.2 release are:
Check our Client Library SDK feature support matrix for full feature coverage across all Client Library SDKs.
A note on ably-js
Message Delta Compression using a non-Ably library
- The announcement blog post
- Documentation for Message Delta Compression
- Documentation for ChannelOptions
- Ably's practical guide to diff algorithms and delta file formats