Top Banner
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]
12

Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

Jul 07, 2015

Download

Technology

Slides for a talk on which messaging layer to use when you want to build a loosely coupled distributed application
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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]

Page 2: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

Messeveryone talks to everyone

Page 3: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

Messagingeveryone talks to everyone through a single medium

Page 4: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

Work Queueeveryone queues their tasks at the same place and waits

for the results

Page 5: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

So you want to build a loosely

coupled app!

!

what do you need to do?

Page 6: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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?

Page 7: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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?

Page 8: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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?

Page 9: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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

Page 10: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

A few options

• RabbitMQ

• ZeroMQ

• Redis

• RDBMS or NOSQL database

• RPC

Page 11: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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

Page 12: Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

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]