Question

We're currently writing a Django-based backend, that will be heavily used by iOS and other mobile clients.

We're using django-rest-framework to provide a HTTP REST API.

The API is used for downloading lists of products, checking on inventory levels, cart and payment, and sending back analytics data from the clients. Where possible, we would like to keep the products and inventory levels synced between the clients in real-time, or as close to real-time as possible.

We do expect our API usage to be quite chatty.

I'm curious - apart form HTTP REST, what other alternatives do we have for a transport that would handle the real-time sync well, and perform well to mobile devices (many of which will possibly be on 3G - so both bandwidth and latency could be issues).

What would work in this situation? And what issues/pitfalls might we encounter?

(E.g. ZeroMQ? Protobuf?)

Cheers, Victor

Was it helpful?

Solution

Node.js and Socket.io have become quite famous for their use for making Real Time applications. I have used them for a basic real-time analytics app and it turned out to be pretty real time. Mine was a small project so I didn't really do any load testing but there are some nice reads about the scalability of Node.js and Socket.io:

http://weblog.bocoup.com/node-stress-test-analysis/

http://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top