Skip to content

Prototype Evaluation: Unify passing low volume state change through single method across layers #24447

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

anthony-murphy
Copy link
Contributor

@anthony-murphy anthony-murphy commented Apr 24, 2025

Evaluating the idea of pushing all low volume state changes through a single method, rather than a method per state type.

The main advantage is we don't need to add a new method to all layers for every state new state or augmentation, the disadvantage is it is harder to do api based feature detection.

The loss of api based feature detection may however be mitigated by the fact that we now have a layer compat contract. in fact, it is hard to deal with both layer compat and api as they don't interoperate well, so pushes more types are changes into the layer compat contract may actually make it easier to manage.

The basic premise here is replace setConnectionState, setAttachState, noifyReadOnlyState, and setTombstone with a single method, notifyStateChange.

I didn't do it in this PR, but we could also consider bringing a change like this to the loader layer.

@github-actions github-actions bot added area: runtime Runtime related issues base: main PRs targeted against main branch public api change Changes to a public API labels Apr 24, 2025
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  163679 links
    1315 destination URLs
    1547 URLs ignored
       0 warnings
       0 errors


@anthony-murphy anthony-murphy changed the title initial notify state change Prototype Evaluation: Unify passing low volume state change through single method across layers Apr 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: runtime Runtime related issues base: main PRs targeted against main branch public api change Changes to a public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant