Skip to content

Content manifest caching #4435#4643

Open
Leinnan wants to merge 5 commits into
mainfrom
feature/contentManifestCaching
Open

Content manifest caching #4435#4643
Leinnan wants to merge 5 commits into
mainfrom
feature/contentManifestCaching

Conversation

@Leinnan

@Leinnan Leinnan commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Resolves #4435 .

In my test when I was using the content manifest with less than 100 entries the time to get the content manifest were similar. When I've increased the manifest size to have bigger size (~1600 entries) the difference start to grow, but it was not consistent. I would say that the biggest win would be for cases where there is a big content manifest that changes from time to time so the clients would need to download a lot of data less frequently. There could be cases where there is a small manifest that does change often, then it could be worse than current solution. Instead of current one request(get me the latest manifest) it will perform two (get me the latest manifest UID, then the manifest with that UID) which is why I've introduced option to opt out of it with define symbol BEAMABLE_OPTOUT_MANIFEST_FILE_CACHING.

@Leinnan
Leinnan requested a review from cdhanna June 5, 2026 12:23
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Lightbeam link

@allister-beamable allister-beamable left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks fine, and should be a net improvement (or at least break even) for most usage patterns. Two things:

  • needs a changelog entry
  • is there any "safety valve" for the (hopefully rare) case of a corrupted or partially-incomplete cached manifest? some client-side way to force it to retry?

Leinnan added 4 commits July 17, 2026 16:45
commit 951e626
Author: Piotr Siuszko <siuszko@zoho.com>
Date:   Fri Jul 17 16:51:42 2026 +0200

    Merge release/5.1.x back to main
@Leinnan

Leinnan commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator Author

Generally looks fine, and should be a net improvement (or at least break even) for most usage patterns. Two things:

* needs a changelog entry

* is there any "safety valve" for the (hopefully rare) case of a corrupted or partially-incomplete cached manifest? some client-side way to force it to retry?

Changelog was updated, about safety valve I do not see a easy way to add it now as part of this work.

Comment thread cli/cli/CHANGELOG.md
Comment on lines +14 to +19

- Fixed an issue where SmallerJson was not serializing/deserializing null fields to default values.

## [7.2.1] - 2026-06-30

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, updating the log to accurately reflect the release date! (and a good reminder to the whole team to update it when cutting releases -- I think this specific one is my fault 😇)

@allister-beamable allister-beamable left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good with the CHANGELOG updates.

Having discussed & thought about the "safety valve" topic: hopefully the circumstances that could lead to an actually corrupted or incomplete cache are vanishingly rare, and if they do occur the solution would be to uninstall & reinstall or clear device cache. Honestly, any mechanism trying to forestall or react to corrupted/incomplete caches would be more complex and error prone than the simple "turn it off and on again" hammer of uninstall & reinstall.

@github-actions

Copy link
Copy Markdown
Contributor

Lightbeam link

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.

Content Manifest Caching

2 participants