Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Which messaging layer to use in a loosely coupl...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for PyCon 2014 PyCon 2014
April 12, 2014
800

Which messaging layer to use in a loosely coupled distributed app by Narahari Allamraju

Avatar for PyCon 2014

PyCon 2014

April 12, 2014
Tweet

More Decks by PyCon 2014

Transcript

  1. Which messaging layer to use in a loosely coupled distributed

    app? ! Narahari (Hari) Allamraju ! java developer; python enthusiast working with messaging systems for 9.5 years ! http://github.com/supercoderz [email protected] 1
  2. So you want to build a loosely coupled app !

    why? do you know what side effects you will have? ! ok you know … ! what do you need to do? 5
  3. The basics • Will the application benefit by splitting up

    into components? • What are the components? How are they dependent on each other? • Do we need more than one instance of each to cope up with the load? • Do we need newer components to handle certain cases that arise from the new messaging layer? 6
  4. Identify the patterns • What sort of interface do we

    need - request-reply, publish subscribe or queuing? • Do we need to separate out messages into various types? • Do we need schemas for the messages or free form? • Are there any components that have a higher or lower throughput than others? 7
  5. Latency, routing, priority • Which components need the message yesterday;

    and which can wait till end of day? • Do we need to expire messages when they are too late? • How easily can we route messages? • Can we make some messages take highest priority? 8
  6. Build, Manage and Support • Do we have a suitable

    API? • Easy to provision and manage • Good monitoring • Guaranteed delivery of messages • Should be persist messages to disk for crash recovery? • Cleanup in case of issues 9
  7. A few options • RabbitMQ • ZeroMQ • Redis •

    RDBMS or NOSQL database • RPC 10
  8. Considering future growth • What if the loads increased by

    15%? • What if we had a consistent heavy run for 24 hours or more? • Storage costs etc • If we have to switch to a different underlying - how hard is it? Tokyo Metro 11
  9. Questions! • This presentation can be found on slideshare at

    - http://goo.gl/KVJxoE ! • The version with speaker notes will be available soon ! • you can also email me at [email protected] 12