Skip to content

[Drift] Kotlin SDK adds opt-in support for the new checkpoint-request protocol (powersync-kotlin #371) #582

Description

@benitav

What's changing: The Kotlin SDK adds opt-in, experimental support for the new checkpoint-request protocol. Setting SyncOptions.checkpointMode to CheckpointMode.Requests() switches the sync client to request-based checkpoint reconciliation, and a new CustomCheckpointRequestConnector abstract class (with postCheckpointRequest()) lets backends that process uploads asynchronously participate. Both are gated behind @ExperimentalCheckpointRequestsApi. This PR does not add a client-facing requestCheckpoint()/waitForSync() API to the Kotlin SDK itself, only the protocol-level plumbing.

High priority — existing docs are now inaccurate or incomplete
None identified.

For reviewer consideration — worth documenting

  • Kotlin SDK support for the checkpoint-request protocol. Sync Catch-Up (Checkpoint Requests) (client-sdks/advanced/checkpoint-requests.mdxhttps://docs.powersync.com/client-sdks/advanced/checkpoint-requests) currently opens with a Warning stating "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." Kotlin now has protocol-level (experimental) support that the page doesn't mention. The page's "Prerequisites" and "Swift Connector" sections are Swift-specific; a "Kotlin Connector" section documenting CustomCheckpointRequestConnector.postCheckpointRequest() and setting checkpointMode = CheckpointMode.Requests() would be the Kotlin analog, once the feature is considered stable enough to document (it remains experimental as of this PR).

Related: #569 covers the JS SDK's adoption of the same protocol groundwork (a different source PR, powersync-js#1072). This issue is the Kotlin SDK's rollout of that same underlying feature, not a duplicate.

Source PR: powersync-ja/powersync-kotlin#371. Merged 2026-08-21.

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