Skip to content

perf: progressive JMAP first sync - #52

Open
Fneufneu wants to merge 1 commit into
flectar:mainfrom
Fneufneu:perf/jmap-progressive-sync
Open

Fneufneu wants to merge 1 commit into
flectar:mainfrom
Fneufneu:perf/jmap-progressive-sync

Conversation

@Fneufneu

@Fneufneu Fneufneu commented Oct 3, 2026

Copy link
Copy Markdown

Summary

The first JMAP sync downloaded the headers of every email in the history window and persisted them in a single final transaction, so a large mailbox stayed empty until the very end. Each Email/get page is now committed as soon as it arrives, newest first, while the next page is being fetched. The email state is still only checkpointed after the last page, and the full-sync reconciliation runs at that point.

Validation

All test pass and my 10G jmap account synced.

Contribution and licensing

  • I have the right to submit this work. If an employer or another entity owns it, I have obtained the required authorization.
  • I identified the source and license of every third-party dependency or asset added by this pull request.
  • I disclosed any material generative-tool assistance and reviewed its output for correctness, provenance, and licensing.
  • This pull request contains no credentials, private mailbox data, signing material, or unnecessary personal information.

The first JMAP sync downloaded the headers of every email in the
history window and persisted them in a single final transaction, so a
large mailbox stayed empty until the very end. Each Email/get page is
now committed as soon as it arrives, newest first, while the next page
is being fetched. The email state is still only checkpointed after the
last page, and the full-sync reconciliation runs at that point.

Co-Authored-By: Claude Opus 5.5
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