

How to: Reliable messaging system Mobile to Server - helloritesh

Folks<p>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&#x2F;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&#x27;s imperative that we don&#x27;t loose messages and build a reliable and secure messaging system.
======
jkarneges
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.

~~~
helloritesh
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.

~~~
jkarneges
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.

~~~
helloritesh
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

~~~
helloritesh
J

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

Thanks

~~~
jkarneges
Sure, feel free to email me: justin at fanout.io

------
helloritesh
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

~~~
walterbell
Have you looked at [https://www.firebase.com/](https://www.firebase.com/)
(paid service)?

~~~
helloritesh
Thanks Walterbell. This is useful and I'd investigate further. Looks like
Firebase is a combination of Pubnub and Push.

