Building RabbitMQ based Chat on
barter.li Android App
Why RabbitMQ for Chat
● Fast, reliable, guaranteed & scalable chat
● Mobile, Web compatibility
● Messages, pics, audio, vi...
RabbitMQ
● Uses AMPQ protocol
● Built with Erlang
Founded by Rabbit Technologies in year 2007
Why AMPQ
● IBM MQSeries
● Microsoft Message Queue
● Java Message Service
Other Vendors
● Apache qpid
● Apache apollo
● Windows Azure Service Bus
AMPQ
● Started by JPMorgan Chase with iMatix Corporation and
evolved to develop an open standard
● Allows different MQ ven...
Why Erlang?
● Developed by Ericsson
● Good at distributed computing
● Used by Facebook, What’s App
● Open Telecom Platform
Important Things
● Queues
● Exchanges
● Bindings
Exchanges
● Topic
● Fanout
● Direct
● Headers
Android and Rabbitmq
● The java client library is not mobile optimized
● Unreliable tcp (Transmission Control Protocol) co...
Issues Faced
● Need to handle frequent tcp connection failure
● Different device login and round robin issues
● Maybe not ...
Solution
● Heartbeat for tcp issues
● Unique queue names for different devices with same id.
● Fanout messaging
Alternatives
● MQTT: Message Queuing Telemetry Transport
● Faye: Simple pub/sub messaging
References
● https://groups.google.com/forum/#!forum/ruby-amqp
● http://www.linkedin.com/groups/RabbitMQ-2830653
● https:/...
Android
673 Commits
5 contributors
Design
100 commits
7 contributors
ROR
252 commits
1 contributor
Marketing
5-6
Contribut...
Love books? Tomorrow @ 11 am
June 2014 - Building Rabbit MQ based chat on Android
June 2014 - Building Rabbit MQ based chat on Android
June 2014 - Building Rabbit MQ based chat on Android
Upcoming SlideShare
Loading in …5
×

June 2014 - Building Rabbit MQ based chat on Android

3,624 views

Published on

Prasun from barter.li talking about how they implemented RabbitMQ chat in their app

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,624
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

June 2014 - Building Rabbit MQ based chat on Android

  1. 1. Building RabbitMQ based Chat on barter.li Android App
  2. 2. Why RabbitMQ for Chat ● Fast, reliable, guaranteed & scalable chat ● Mobile, Web compatibility ● Messages, pics, audio, video transfer etc. ● No dependence on Google services
  3. 3. RabbitMQ ● Uses AMPQ protocol ● Built with Erlang Founded by Rabbit Technologies in year 2007
  4. 4. Why AMPQ ● IBM MQSeries ● Microsoft Message Queue ● Java Message Service
  5. 5. Other Vendors ● Apache qpid ● Apache apollo ● Windows Azure Service Bus
  6. 6. AMPQ ● Started by JPMorgan Chase with iMatix Corporation and evolved to develop an open standard ● Allows different MQ vendors communicate with each other
  7. 7. Why Erlang? ● Developed by Ericsson ● Good at distributed computing ● Used by Facebook, What’s App ● Open Telecom Platform
  8. 8. Important Things ● Queues ● Exchanges ● Bindings
  9. 9. Exchanges ● Topic ● Fanout ● Direct ● Headers
  10. 10. Android and Rabbitmq ● The java client library is not mobile optimized ● Unreliable tcp (Transmission Control Protocol) connection ● Heavy weight
  11. 11. Issues Faced ● Need to handle frequent tcp connection failure ● Different device login and round robin issues ● Maybe not meant for chat
  12. 12. Solution ● Heartbeat for tcp issues ● Unique queue names for different devices with same id. ● Fanout messaging
  13. 13. Alternatives ● MQTT: Message Queuing Telemetry Transport ● Faye: Simple pub/sub messaging
  14. 14. References ● https://groups.google.com/forum/#!forum/ruby-amqp ● http://www.linkedin.com/groups/RabbitMQ-2830653 ● https://github.com/intrepidkarthi/RabbitMQ-Android-Chat ● http://rubyamqp.info/ ● rabbitmq.1065348.n5.nabble.com/previous-connection-is-NOT-automatically- closed-if-IP-different-td31096.html
  15. 15. Android 673 Commits 5 contributors Design 100 commits 7 contributors ROR 252 commits 1 contributor Marketing 5-6 Contributors
  16. 16. Love books? Tomorrow @ 11 am

×