Hacker News new | ask | show | jobs
How to: Reliable messaging system Mobile to Server
2 points by helloritesh 4335 days ago
Folks

I am building a simple customer service messaging system for businesses where customers can chat with Agents using mobile. In essence, the mobile app sends and receives messages to/from our server. Any recommendation on what kind of infrastructure should we use (pubnub, pusher, realtime.co) for messaging and the server side recommendation (RoR or node.ja - any issues with RoR?). It's imperative that we don't loose messages and build a reliable and secure messaging system.

2 comments

The key to 100% reliability is data storage. The biggest mistake you can make is relying on bare message passing without ever recording the message anywhere. That approach will break in the mobile world very quickly.

My advice is to build a solid CRUD interface for your chat service and then add a realtime updates mechanism on top of it. This approach is basically bulletproof. I'm a big fan of using long-polling for the push aspect, since it fits cleanly into a REST API and works everywhere.

Thanks J. My worry with CRUD is a constant polling that would be required and it absolutely kills the battery on mobile handsets. Correct me if I am wrong.
The CRUD layer wouldn't be used for live updates. You'd use a separate messaging system for that. My point is that you should build the 100% reliable CRUD layer first, then add on a messaging layer for realtime push. This, as opposed to starting with the messaging layer, and then going in circles trying to patch all the ways it can fail.
J This is fair. Thanks a lot for your suggestion. I'd definitely make sure that we have a CRUD layer for reliable & secure communication.

Regards Ritesh

J

Would you have some cycles to provide guidance on the project - formally? I am looking for some technical experience/depth.

Thanks

Sure, feel free to email me: justin at fanout.io
Additional note: Could I just use XMPP or that may not be sufficient given that the mobile device connectivity could be intermittent? I would love to get the community thoughts on this so I can make the right decision.

Thanks Ritesh

Have you looked at https://www.firebase.com/ (paid service)?
Thanks Walterbell. This is useful and I'd investigate further. Looks like Firebase is a combination of Pubnub and Push.