Skip to content

[Drift] Swift SDK cross-process notifications now scoped to changed tables, fixing App Group re-query storms (powersync-swift #166) #577

Description

@benitav

What's changing: The Swift SDK's cross-process database sharing (App Groups / extensions) now propagates the specific tables that changed on each write, instead of a payload-less catch-all notification that caused every receiving process to re-run all watch queries, in some cases triggering runaway re-query loops.

High priority — existing docs are now inaccurate or incomplete
None identified. The existing docs never claimed cross-process notifications carried per-table information, so nothing is factually wrong.

For reviewer consideration — worth documenting

  • This fixes a real gotcha in the documented experimental multi-process feature: prior to this fix, a watch handler writing to a different local table while sharing a database via an App Group could cause excessive re-querying or a self-sustaining CPU-pinning loop. Worth adding as a fourth "concern" (or a note) alongside the existing three in the "App Groups and App Extensions" section of client-sdks/reference/swift.mdx (https://docs.powersync.com/client-sdks/reference/swift#app-groups-and-app-extensions), which currently covers busy_timeout/SQLITE_BUSY handling, not calling connect() from more than one process, and avoiding mixed SDK versions across processes.

Source PR: powersync-ja/powersync-swift#166 (merged 2026-08-18)

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