Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@m-hulbert couple of questions for this one:
|
e85cf45 to
de53456
Compare
| Every message sent through Ably is counted for both publishing and delivery: | ||
|
|
||
| * 1 publish = 1 inbound message | ||
| * Each subscriber delivery = 1 outbound message per subscriber |
There was a problem hiding this comment.
+1 for each delivery to integrations (also applies to messages from log/stats metachannels)
|
|
||
| ## Message size <a id="message-size"/> | ||
|
|
||
| Message size is calculated as the sum of the `name`, `clientId`, `data`, and `extras` [properties](/docs/api/realtime-sdk/messages#properties) before any compression or expansion occurs in the serialization process. |
There was a problem hiding this comment.
LiveObjects and Annotations have different schemes
| | --- | --- | --- | | ||
| | Publish to channel | 1 inbound + 1 per subscriber outbound | Base cost for all messaging | | ||
| | Persisted message storage | +1 per message stored | Enable via [channel rules](/docs/storage-history/storage) | | ||
| | History retrieval | +1 per message retrieved | Each call to the [history API](/docs/storage-history/history) | |
There was a problem hiding this comment.
The wording on the last column may introduce confusion
| | Persisted message storage | +1 per message stored | Enable via [channel rules](/docs/storage-history/storage) | | ||
| | History retrieval | +1 per message retrieved | Each call to the [history API](/docs/storage-history/history) | | ||
| | Presence enter/leave/update | 1 inbound + 1 per presence subscriber outbound | Same counting as regular messages | | ||
| | Typing indicator heartbeat | 1 inbound + 1 per room member outbound | Controlled by `heartbeatThrottleMs` | |
There was a problem hiding this comment.
It feels weird to randomly throw in a Chat principle amid general platform pricing. Should there be a dedicated page for Chat pricing?
|
|
||
| Retrieving persisted messages via the [history API](/docs/storage-history/history) also counts: each message returned in a history response = 1 additional message. | ||
|
|
||
| To avoid persistence costs on messages that don't need history, mark them as [ephemeral](/docs/pub-sub/advanced#ephemeral). |
There was a problem hiding this comment.
But also don't need rewind, integrations and other functions - it's not just history
| * Subscribe to presence updates only on channels where you need member-level detail. | ||
|
|
||
| ## Chat-specific billing <a id="chat"/> | ||
|
|
There was a problem hiding this comment.
Worth a chat-specific page?
|
|
||
| Each chat message published to a room = 1 inbound + 1 per subscriber outbound. | ||
|
|
||
| Each typing indicator heartbeat event = 1 inbound + 1 per subscriber outbound. At the default 10-second heartbeat, one active typer generates approximately six events per minute. In a room with 50 subscribers, this is approximately **306 messages per minute** per active typer. |
Description
Addresses message billing docs gap as per llm-eval docs audit
Checklist