Skip to content
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

build(client): publish experimental presence #22499

Merged
merged 5 commits into from
Sep 16, 2024

Conversation

jason-ha
Copy link
Contributor

@jason-ha jason-ha commented Sep 13, 2024

  • Note current Notifications limitation
  • Connect docs to readme with more details

@github-actions github-actions bot added area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch labels Sep 13, 2024
@msfluid-bot
Copy link
Collaborator

msfluid-bot commented Sep 13, 2024

@fluid-example/bundle-size-tests: +245 Bytes
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 460.92 KB 460.96 KB +35 Bytes
azureClient.js 559.04 KB 559.09 KB +49 Bytes
connectionState.js 680 Bytes 680 Bytes No change
containerRuntime.js 261.68 KB 261.7 KB +14 Bytes
fluidFramework.js 401.54 KB 401.55 KB +14 Bytes
loader.js 134.17 KB 134.19 KB +14 Bytes
map.js 42.43 KB 42.44 KB +7 Bytes
matrix.js 146.58 KB 146.58 KB +7 Bytes
odspClient.js 526.19 KB 526.24 KB +49 Bytes
odspDriver.js 97.8 KB 97.82 KB +21 Bytes
odspPrefetchSnapshot.js 42.76 KB 42.78 KB +14 Bytes
sharedString.js 163.3 KB 163.31 KB +7 Bytes
sharedTree.js 392 KB 392.01 KB +7 Bytes
Total Size 3.3 MB 3.3 MB +245 Bytes

Baseline commit: 709f085

Generated by 🚫 dangerJS against c1621a1

@tylerbutler tylerbutler added the release-blocking Must be addressed before we cut and publish the next release label Sep 13, 2024
@CraigMacomber
Copy link
Contributor

I think you might need a PR description to make to make CI happy.

@CraigMacomber
Copy link
Contributor

If you want customers to try this out, then you should probably include a changeset so it will be announced in the release notes.

@jason-ha
Copy link
Contributor Author

I think you might need a PR description to make to make CI happy.

Yep - that was actually intentional because there are two changes that should happen first. Wanted this one filed for tracking release cut. :)

Copy link
Contributor

@alexvy86 alexvy86 left a comment

Choose a reason for hiding this comment

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

Docs look good overall, but left a few comments.


Experimental Presence package added

**[@fluid-experimental/presence](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/presence#readme)** is now available for investigation. The new package is meant to support presence of collaborators connected to the same container. Use this library to quickly share simple, non-persisted data among all clients or send/receive fire and forget notifications.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not up to date with the exact capabilities of experimental presence, so I read the README, and wanted to confirm if the "quickly share simple, non-persisted data among all clients" has guaranteed delivery so all clients (eventually) agree on that state? Based on my little knowledge about experimental presence, I had it very tied to signals and non-guaranteed delivery. If that were the case, I'd suggest making it more explicit in the changeset, but I suspect that's just my outdated understanding.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good note to have. I'm adding reliability notes to readme. I think we are not quite as bad as fully unreliable as we think we isolated the most common drop situation and have done some accounting.

@@ -82,6 +82,11 @@ presence.getStates("app:v1states", { myState2: Latest({x: true})});
would be compatible with both of the prior schemas as "myState2" is a different name. Though in this situation none of the different clients would be able to observe each other.


### Notifications

Notifications API is not well connected. All messages are always broadcast even if `unicast` API is used and all are emitted as `unattendedNotification` event rather than the appropriate custom event.
Copy link
Contributor

Choose a reason for hiding this comment

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

I might suggest dropping the first sentence. For a while I couldn't quite make sense of it even in the context of the second one, and I think the second one on its own is clear about the limitation.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

👍 Reworded.

@jason-ha jason-ha merged commit 42b323c into microsoft:main Sep 16, 2024
44 checks passed
@jason-ha jason-ha deleted the presence/publish-package branch September 16, 2024 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch changeset-present release-blocking Must be addressed before we cut and publish the next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants