Skip to content

Conversation

@franrob-projects
Copy link
Contributor

@franrob-projects franrob-projects commented Dec 23, 2025

This PR:

  • Adds temporary USP components.
  • Adds short statements within USP components that direct the user to supporting evidence in Ably's architecture docs.

Note that once the copy has been confirmed, I will then add the finished components designed by Lenker.

Checklist

@coderabbitai
Copy link

coderabbitai bot commented Dec 23, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@franrob-projects franrob-projects force-pushed the FTF-450-write-usp-copy-for-live-sync branch from c1e6bb1 to aa54243 Compare January 9, 2026 14:41
@franrob-projects franrob-projects added the review-app Create a Heroku review app label Jan 9, 2026
@franrob-projects franrob-projects marked this pull request as ready for review January 9, 2026 14:42
@ably-ci ably-ci temporarily deployed to ably-docs-ftf-450-write-78s5cq January 9, 2026 14:43 Inactive
Copy link
Contributor

@GregHolmes GregHolmes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This branch isn't building. But I've left some comments, let me know what you think.


By using Ably Pub/Sub channels and SDKs, clients subscribing to messages published by the MongoDB database connector benefit from features like [connection-recovery](/docs/connect/states), [exactly-once delivery](/docs/achieving-exactly-once-message-processing-with-ably) and [ordering guarantees](https://faqs.ably.com/reliable-message-ordering-for-connected-clients) out of the box.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is in the middle of the text introducing how to use MongoDB and LiveSync, and the image showing it. I don't think the Aside is relevant enough to split these two up.


The MongoDB database connector is enabled through an Ably integration rule. The rule will consume document changes from your MongoDB deployment via the MongoDB [Change Streams API](https://www.mongodb.com/docs/manual/changeStreams/). The integration rule exists as a "database connector" component that is entirely provisioned and managed by Ably and is fault-tolerant with automatic fail-over.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not too sure I see the relevance of this Aside to be in the middle of a section on How it works. If the content is relevant, could it be placed somewhere else in the page?

You must set the `_ablyChannel` field on the root of the change event. This allows the MongoDB database connector to know where to route the change event.
</Aside>

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this immediately after an Important Aside? and are 3 Asides needed on a single page?


By using the outbox table, you can specify which channel that record should be published to, and make changes to your other database tables transactionally with the publish. This mitigates the problem of trying to transactionally write to two different systems; Ably and the database. You can gain exactly-once and in-order delivery over Ably transactionally with other data you modify in your database.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need two of these separated by a single line of text? I'd recommend using the most relevant and removing the other.

- the [`sync()`](#sync) function is used by the SDK to retrieve the current state of the `model` from your backend,
- the [`merge()`](#merge) function is used by the SDK to merge state change events published by the Postgres database connector with the existing frontend state in the `model`.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this relevant to how it works?


LiveSync can be used in applications where your database is the source of truth for the application state, and that state needs to be reflected in realtime to client applications. LiveSync enables this data synchronisation while maintaining data integrity and low latency.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this distracts from the connection between the intro text and the image. What do you think?


Ably's [pub/sub channels](/docs/channels) are the mechanism used by LiveSync for synchronizing data updates across clients. When a message is published on a channel by the database connector, it is immediately broadcast to all subscribers of that channel.

<Aside data-type='see-evidence'>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we already talk about ordering guarantees 2 paragraphs up. Do we need this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-app Create a Heroku review app

Development

Successfully merging this pull request may close these issues.

4 participants