-
Notifications
You must be signed in to change notification settings - Fork 20
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
Preliminary Work and IoT Use Case #9
Comments
MUXing is one of the use-cases which makes TCP a poor fit as a transport.
Yes. One of the great things about Reactive Streams is that the producer of the data knows that there is no demand, and can make smart & local decisions to do in the mean time (compress, discard, store etc).
As mentioned earlier, TCP is a poor transport for MUXed discrete streams due to HOL blocking.
I'd probably choose something UDP based. Or even SCTP. @tmontgomery is the resident protocol expert—he might have something to add to this discussion. |
@viktorklang Thanks for the feedback. We'll allow for different protocols via our API, but out of the box, we need this to work using Web technology for which there is existing infrastructure. I appreciate your position on TCP vs. UDP, but for now, we're going to implement on top of WebSockets. This is more than a pure technology decision. We are also factoring in approachability, tooling, and developer experience. |
Howdy, folks.
A little background on our use case:
I work on an open source IoT platform, zettajs/zetta. As you can imagine, streaming data is a pretty important concept when exposing sensor data. We use HTTP and WebSockets for the client-to-server (C2S) protocol, layering similar semantics over the multiplexed SPDY protocol for server-to-server (S2S) communication.
Currently, we use an API style called hypermedia for offering links to data streams. Some problems we're looking to solve:
My intention has been to define this using a protocol that would work over plain TCP and map those semantics to work over WebSockets. For Zetta, this would be strictly for the C2S protocol at this time. The S2S protocol is a little more complex, involving WebSockets, SPDY, SPDY Server Push, and swapping client/server roles between open connections (I won't go deeper, but trust me, it makes sense). We'll handle the mapping at that level, but I'm not sure how much of that would be beneficial for the greater community.
So, my question: Has there been any preliminary work defining Reactive Streams interaction over TCP? If so, where might I find a document or discussion? As much as I enjoy making a 15th standard (and I truly do), I'd love to be able to combine efforts if it makes sense. I can share my thinking, as well, as soon as I gather my notes and draft a document.
Thanks!
The text was updated successfully, but these errors were encountered: