-
Notifications
You must be signed in to change notification settings - Fork 519
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
Introducing DDSs article #3126
Introducing DDSs article #3126
Conversation
|
||
Merge behavior of each DDS is relevant to their usage. | ||
## Key-value data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
todo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be a future PR
docs/advanced/handles.md
Outdated
### Why use Fluid Handles? | ||
|
||
- You should **always** use handles to represent `fluid objects` and store them in a Distributed Data Structure (DDS). | ||
This tells the runtime, and the storage, about the usage of the object and that it is referenced. The runtime / |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beyond the fact that storing the handle tells runtime/storage "that it is referenced", is there really anything else "about the usage of the object" that they are told? If so, then what is this additional information? If not, let's delete the extra phrase about the usage of the object.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@agarwal-navin Can you help here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As of now, we don't use handles for anything else, so we can remove the phrase 'usage of the object'. The plan is to use it for some other functionality but we update this doc as and when that happens.
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
Co-authored-by: Rick-Kirkham <Rick-Kirkham@users.noreply.github.com>
@Rick-Kirkham I talked with Navin and he's going to follow up with additional changes to the handles docs since there are a number of design changes pending. The handles docs are not going to be published initially. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See my specific comments. (The github UI on the "Conversation" tab of the PR hides most of them. You might have to go to the "Files changed" tab.
### Why use Fluid Handles? | ||
|
||
- You should **always** use handles to represent Fluid objects and you should store the handles in a Distributed Data | ||
Structure (DDS). This tells the runtime and the storage service that the object is referenced. The runtime / storage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this section is currently explaining "Why use Fluid Handles (instead of an ID or URL)?" But I think there's maybe an additional question to answer of "Why use Fluid Handles (instead of storing the DDS directly)?"
With normal non-collaborative data structures, normally folks would just store in-memory objects directly. But since the data in DDSs must be communicated to remote clients we are restricted to only storing serializable data. So if we want to store non-serializable objects in our DDSs, we can use handles (which are serializable) to reference them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, you can know the handle before you attach the object.
## Handles | ||
|
||
A [Fluid Handle](../../packages/loader/core-interfaces/src/handles.ts) is a handle to a _Fluid object_. It is | ||
used to represent the object and has a function `get()` that returns the underlying object. Handles move the ownership |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Represent seems strong... used to access the object?
A [Fluid Handle](../../packages/loader/core-interfaces/src/handles.ts) is a handle to a _Fluid object_. It is | ||
used to represent the object and has a function `get()` that returns the underlying object. Handles move the ownership | ||
of retrieving a Fluid object from the user of the object to the object itself. The handle can be passed around in the | ||
system and anyone who has the handle can easily get the underlying object by simply calling `get()`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
get on what?
### Why use Fluid Handles? | ||
|
||
- You should **always** use handles to represent Fluid objects and you should store the handles in a Distributed Data | ||
Structure (DDS). This tells the runtime and the storage service that the object is referenced. The runtime / storage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, you can know the handle before you attach the object.
|
||
|
||
[remote handle]: | ||
https://github.com/microsoft/FluidFramework/blob/master/packages/runtime/runtime-utils/src/remoteComponentHandle.ts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link is out of date
Fixes #3092.