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 |
0efa7b8 to
7221fe9
Compare
paddybyers
left a comment
There was a problem hiding this comment.
I've happy that my comments have been addressed, but @m-hulbert should also review from the PoV of the scope of this doc and where it fits in the IA, etc.
|
@m-hulbert just a nudge on this please - it's a lot smaller than the auth PR and would be nice to get this over the line |
…rfaces we'd expect our users to use for their usecase
m-hulbert
left a comment
There was a problem hiding this comment.
A few minor comments but mostly looks good.
|
|
||
| When building with Ably, you need to make several decisions: | ||
|
|
||
| 1. **Which product**: Pub/Sub, Chat SDK, Spaces SDK, or LiveSync |
There was a problem hiding this comment.
I think we should list all the products here (we're missing LO and AIT) and shouldn't be equating products with SDKs.
| When building with Ably, you need to make several decisions: | ||
|
|
||
| 1. **Which product**: Pub/Sub, Chat SDK, Spaces SDK, or LiveSync | ||
| 2. **Which features**: LiveObjects for synchronized state, channel rules for per-namespace configuration |
There was a problem hiding this comment.
LiveObjects is technically a product so this looks a little odd. "channel rules" should be just "rules" too please.
|
|
||
| Use Pub/Sub when: | ||
|
|
||
| * You need maximum flexibility in message structure and channel design |
There was a problem hiding this comment.
Full stops on the end of sentenced bullets please.
| * You're building custom realtime features not covered by purpose-built SDKs | ||
| * You need to integrate with existing backend systems | ||
|
|
||
| With Pub/Sub, you can use [channel rules](/docs/channels#rules) to configure namespace-specific settings such as message persistence, client identification requirements, and push notification enablement. |
There was a problem hiding this comment.
"channel rules" --> "rules" throughout.
|
|
||
| ### Chat SDK | ||
|
|
||
| [Ably Chat](/docs/chat) provides purpose-built APIs for building chat functionality. It handles the complexities of architecting chat features so you don't have to. |
There was a problem hiding this comment.
I think these intros need to be consistent:
Use Pub/Sub when you need full control over your message architecture or are building custom realtime features.
It handles the complexities of architecting chat features so you don't have to.
These have quite a a different tone of voice.
| * 1:1 customer support chat | ||
| * Group conversations | ||
| * Livestream chat with thousands of users | ||
| * Any application requiring rooms, messages, typing indicators, reactions, or presence |
There was a problem hiding this comment.
Should we make this more targeted - e.g. "any application requiring chat functionality"?
| | [LiveMap](/docs/liveobjects/map) | Synchronized key-value stores | | ||
| | [Batch operations](/docs/liveobjects/batch) | Atomic updates across multiple objects | | ||
|
|
||
| Pub/Sub channels, without LiveObjects, can also be used as a durable store of channel state, and for client hydration, but in this case the state is simply the content of messages sent on the channel. See [history](/docs/storage-history/history) and [rewind](/docs/channels/options/rewind) for further discussion of how this pattern applies. |
|
|
||
| ## Combining SDKs with Pub/Sub | ||
|
|
||
| Purpose-built SDKs like Chat and Spaces are built on top of the Ably Pub/Sub SDK. When using a purpose-built SDK, you can also use Pub/Sub features directly over a shared connection. Do not share the use of specific channels with the purpose-built SDK, but share the connection. |
There was a problem hiding this comment.
I like that we're including this, but should we touch on how a shared channel works briefly?
| * **Consider message ordering**: Messages on SDK-managed channels and custom Pub/Sub channels are independent; design your application accordingly | ||
| * **Handle connection state once**: The underlying Realtime client manages connection state; don't add redundant connection handling for custom features | ||
|
|
||
| ## Quick reference |
There was a problem hiding this comment.
Not a huge fan of this section to be honest as we can't really cover the same level of nuance as the individual ones.
| | No SDK available for platform | Protocol adapters or REST HTTP API | | ||
| | Migrating from Pusher or PubNub | Protocol adapters | | ||
|
|
||
| ## Next steps |
There was a problem hiding this comment.
I think I'd rather link out to getting started guides and/or examples for people to get hands-on.
Description
Adds a Product guidance page which details which products and/or interfaces we'd expect our users to use for their usecase
Checklist