-
Notifications
You must be signed in to change notification settings - Fork 535
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
Naming consistency for API/event surface related to Container's connection to delta stream #9677
Comments
Are we trying to reaplace "Connecting" with "Pending" state? |
i've always disliked our read vs write connection at this layer, especially the active concept. the delta manager has separate queues for inbound and outbound, i'd love to unify on those concepts, or downstream and upstream. inbound/downstream would be like read today, and outbound/upstream would be like write today. I don't have a clear picture on the level of control we want to provide here for upstream vs downstream, but even if we don't provide control for them both, we could expose them separately. |
Thanks for putting it together! Some random thoughts:
|
Thanks for the feedback/questions!
Yes
Good topic, but out of scope for the moment (but maybe I will think about it and include in this proposal).
Looks like @scottn12 is removing this in #9439, so I'll update this doc too.
I think I like this idea, thanks.
Good point, yeah let's move them to |
Updated the original comment and the PR showing the diff. |
As discussed in the diff PR, will probably merge Thinking probably just an object that we silently update, so if too much time elapses they can query it for progress - as opposed to an object that emits fine-grained events along the way. That would be too difficult to maintain and just kind of noisy. The object could have a pretty generic contract full of string-named steps and their status. |
Clearing May milestone. This design is living in on this internal Word doc. I will update this issue once that design is finalized. |
This issue has been automatically marked as stale because it has had no activity for 180 days. It will be closed if no further activity occurs within 8 days of this comment. Thank you for your contributions to Fluid Framework! |
Two goals:
Here are the proposed new API shapes. See the diff here to see what's changing from the current state.
IContainer
(public):connectionState: ConnectionState
Disconnected
: no socket connection to delta serverPending
: socket connection established but we're not caught upConnected
: connected and caught upconnect()
DeltaManager.connect
(and picks up some semantics from oldsetAutoReconnect
?)disconnect()
connect()
is called again.connecting
: when starting to establish connection. Some kind of progress tracker passed for observability of estabilishing healthy connection to delta streamconnectionStateChanged
: when connectionState value changes. arg passed of new ConnectionState.IDeltaManager
(public):active: boolean
Container.connectionState === Connected
and mode is writeDeltaManager
class (internal)connectToDeltaStream
IDeltaManagerInternalEvents
)deltaStreamConnected
: when socket is established. Triggers Container transition toPending
statedeltaStreamDisconnected
: when socket is disconnected. Triggers Container transition toDisconnected
stateThe text was updated successfully, but these errors were encountered: