-
Notifications
You must be signed in to change notification settings - Fork 11
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
Feature request: support Observables #67
Comments
A version of this could be made to work and would be very cool. What would the API be? How about having Here's how that can work.
The big under-the-hood change needed would be to update the RemoteREPL protocol to give each message an ID and allow out-of-order delivery of messages between client and server. That way we can safely interleave delivery of Observable updates with normal RemoteREPL "REPL traffic", and deliver each message to the correct consumer on the client side. This is a good change in general because having message IDs and out of order delivery would also greatly help with delivering log messages back to the client in real time. And would probably allow more graceful recovery from disconnected sockets as well. |
I guess that could work with some multiple dispatch that expects an Also, do you want
How do you imagine that? Like a counter to tell apart which messages are old and which are new? Also why do we need a message ID? We already have a session ID. What would we win to give each message an ID? And if we really need one, maybe we can actually use some sort of a hash of the message content ? |
I guess they can't. But I'm not sure this really works "as expected" anyway? What happens to the listeners on the remote side when the observable is serialized? Are the listeners serialized too? What does it mean to call
If Observables.jl is low-dependency that seems fine.
Something like the client generates a sequential ID for a request, and the server sends that ID back to the client in the reply? So not really a message ID I guess, but some kind of transaction ID to mark the request-response cycle. Why would we need a transaction ID? The point is if you have an Observable on the remote side a So the client may be expecting the next message from the server to contain the reply to the REPL command, but the client may get an observable update message instead. The transaction ID allows the client to determine which reply is which. |
Would be nice if we would have observables that track the remote value and are automatically updated when the value on the remote is changed. Let me know if that sounds like something this repo can accommodate.
The text was updated successfully, but these errors were encountered: