Skip to content

fix(collab): preserve initial sync delivery under backpressure - #590

Draft
marcodantonio-netsons wants to merge 1 commit into
CoreBunch:mainfrom
marcodantonio-netsons:fix/collab-socket-backpressure
Draft

marcodantonio-netsons wants to merge 1 commit into
CoreBunch:mainfrom
marcodantonio-netsons:fix/collab-socket-backpressure

Conversation

@marcodantonio-netsons

Copy link
Copy Markdown

Large sites send thousands of initial collaboration replies through one socket. The server previously ignored backpressure and continued generating replies, leaving some documents empty and the editor write gate closed indefinitely. Serialize requests per connection, await Bun's drain after a queued send, and reconnect when delivery fails. Pub/sub overflow also closes the connection so state-vector recovery can catch up.

Verified with bun test (7,056 passed), bun run build, bun run lint, and git diff --check. Regression tests cover drain ordering without duplicate sends, disconnect cancellation, and dropped-frame recovery. Existing real-socket collaboration tests pass. Browser verification on an isolated 1,602-page / 754-component site went from 2,061 empty document trees to zero; layer rename, undo/redo and persistence after reload passed. Local test data and screenshots are excluded. No database schema changes.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant