Reliability of bidirectional streams?

736 views
Skip to first unread message

sjmu...@gmail.com

unread,
Aug 16, 2015, 7:26:02 PM8/16/15
to grpc.io
I've been evaluating grpc, specifically around realtime communication with bidirectional message streams in the context of client (mobile devices) to server.  Naturally, the comparisons are against established solutions using websockets (think engine.io, socketcluster, autobahn, primus, etc.).  Many of these libraries focus on reliable messaging, so things like reconnection, connection health (server client ping) are baked in or available with plugins.

Is grpc meant to be an alternative solution for these types of apps, albeit with http/2 rather than websockets?  Are there plans to provide features as mentioned above, along with other necessary aspects (like pub sub, for example)? 

Louis Ryan

unread,
Aug 20, 2015, 12:41:29 PM8/20/15
to sjmu...@gmail.com, grpc.io
Sam,

I guess it depends on your definition of reliable. GRPC will implement the features you mention (auto-reconnect, load-balancing & failover, health checking etc.) These are generally considered to be 'connection reliability' features and are somewhat distinct from true pub-sub semantics like 'at least once' delivery guarantees for messages where delivery ACKs are required. GRPC won't provide those but then neither do primus, socketcluster & co.

-Louis

On Sun, Aug 16, 2015 at 4:26 PM, <sjmu...@gmail.com> wrote:
I've been evaluating grpc, specifically around realtime communication with bidirectional message streams in the context of client (mobile devices) to server.  Naturally, the comparisons are against established solutions using websockets (think engine.io, socketcluster, autobahn, primus, etc.).  Many of these libraries focus on reliable messaging, so things like reconnection, connection health (server client ping) are baked in or available with plugins.

Is grpc meant to be an alternative solution for these types of apps, albeit with http/2 rather than websockets?  Are there plans to provide features as mentioned above, along with other necessary aspects (like pub sub, for example)? 

--
You received this message because you are subscribed to the Google Groups "grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+u...@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/eca49ce3-864c-4f5b-9bf9-779fa3abe130%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rob Cecil

unread,
Aug 21, 2015, 1:50:06 PM8/21/15
to grpc.io, sjmu...@gmail.com
Sam,

You say "will implement..". Are you actually talking about future feature/capability, or present capability.

What is not clear to me is the LB, Failover aspects of Channels.

Louis Ryan

unread,
Aug 21, 2015, 2:34:30 PM8/21/15
to Rob Cecil, grpc.io, sjmu...@gmail.com
Auto-reconnect I believe is implemented for most languages (I know it is for Java). Load-Balancing & Failover are in active discussion and that necessarily implies health checking. To some extent health-checking is already built into HTTP2 via the PING frame but what is missing is an API to surface that in all languages, in this case Java already has one.

Reply all
Reply to author
Forward
0 new messages