Skip to content

[Drift] Dart SDK adds experimental client support for checkpoint requests (powersync.dart #467) #608

Description

@benitav

What's changing: The Dart SDK adds experimental client-facing support for the checkpoint-request protocol: a new CheckpointMode (CheckpointMode.legacy() / CheckpointMode.requests()) settable on SyncOptions, plus a CustomCheckpointRequestConnector mixin for backends that process uploads asynchronously. The feature is marked @experimental. It's a port of the same protocol work already shipped for JavaScript (powersync-js#1072) and Kotlin (powersync-kotlin#371), but unlike those two, it adds real client-facing checkpoint-request support (not just protocol-level plumbing).

High priority — existing docs are now inaccurate or incomplete

  • Sync Catch-Up (Checkpoint Requests) (client-sdks/advanced/checkpoint-requests.mdxhttps://docs.powersync.com/client-sdks/advanced/checkpoint-requests), opening Warning: "Checkpoint requests are an alpha API and may change. Client support is currently available for Swift and requires PowerSync Service version 1.24.0 or later. Support for the JavaScript SDKs is in progress, and other SDKs will follow." Dart now has experimental client support too, so the SDK list is incomplete.

For reviewer consideration — worth documenting

  • A "Dart Connector" section documenting CustomCheckpointRequestConnector and setting SyncOptions(checkpointMode: CheckpointMode.requests()), analogous to the page's existing "Swift Connector" section, once the feature is considered stable enough to document (it remains marked @experimental as of this PR).

Related: #582 covers the same protocol rollout for the Kotlin SDK (a different source PR, powersync-kotlin#371). This issue is the Dart SDK's rollout, not a duplicate.

Source PR: powersync-ja/powersync.dart#467. Merged 2026-09-01.

Filed automatically by Claude Code (claude-sonnet-5). A human must verify the scope, prepare the docs PR, and publish it only once this update has been released.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions