perf: run session state sync in parallel with messages fetch during startup hydration#579
Closed
sam-saffron-jarvis wants to merge 1 commit intoSamSaffron:mainfrom
Closed
Conversation
…tartup hydration
hydrateActiveSessionAfterStartup serialized two independent network
fetches: first load messages (for _serverOnly sessions), render, then
fetch session state via syncActiveSessionFromServer.
The messages fetch and the session state fetch (/v1/sessions/{id}/state)
are independent — neither depends on the result of the other. Start
syncActiveSessionFromServer immediately so its round-trip overlaps with
the messages fetch, saving approximately one HTTP round-trip worth of
latency (~100-300 ms) for users who navigate directly to a session URL
at startup.
Owner
|
Consolidated this idea into a single local changeset on main with the other selected PR ideas. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
hydrateActiveSessionAfterStartupruns two network requests sequentially:loadServerSessionMessages— fetches the session's message historysyncActiveSessionFromServer— fetches/v1/sessions/{id}/stateto determine if a response is activeThese two requests are completely independent: neither depends on the result of the other. The current serial order wastes one full HTTP round-trip (~100–300 ms) every time a user loads the UI with a specific session URL.
Fix
Start
syncActiveSessionFromServerimmediately (before awaiting the messages fetch). The state round-trip now overlaps with the messages fetch instead of waiting for it.Impact
_serverOnlysession (direct URL navigation, page reload)