28
gareth rushgrove | morethanseven.net Message Queues Asynchronous Messaging for Web Apps Cambridge Geek Night 9th June 2009 http://www.flickr.com/photos/le_haricot/132869163/

Message Queues for Web Applications

Embed Size (px)

DESCRIPTION

A short introduction to message queues for web developers. Presented at the first Cambridge Geek Night

Citation preview

Page 1: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Message QueuesAsynchronous Messaging for Web Apps

Cambridge Geek Night 9th June 2009

http://www.flickr.com/photos/le_haricot/132869163/

Page 2: Message Queues for Web Applications

Gareth Rushgrove

gareth rushgrove | morethanseven.net

morethanseven.net

Page 3: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

How The Web Works

http://www.flickr.com/photos/aftab/3364835006/

Page 4: Message Queues for Web Applications

Make an HTTP Request

gareth rushgrove | morethanseven.net

Page 5: Message Queues for Web Applications

Get an HTTP Response

gareth rushgrove | morethanseven.net

Page 6: Message Queues for Web Applications

Not Just Browsers

gareth rushgrove | morethanseven.net

Page 7: Message Queues for Web Applications

Not Just People

gareth rushgrove | morethanseven.net

Page 8: Message Queues for Web Applications

http://www.flickr.com/photos/12009357@N08/1204911091/

A Common Pattern

gareth rushgrove | morethanseven.net

Page 9: Message Queues for Web Applications

Make an HTTP Request to a Third Party

gareth rushgrove | morethanseven.net

Page 10: Message Queues for Web Applications

Get an HTTP Request to a Third Party

gareth rushgrove | morethanseven.net

Page 11: Message Queues for Web Applications

http://www.flickr.com/photos/saxonmoseley/24523450/gareth rushgrove | morethanseven.net

A Common Problem

Page 12: Message Queues for Web Applications

Fail Whale

gareth rushgrove | morethanseven.net

Page 13: Message Queues for Web Applications

Now What?

gareth rushgrove | morethanseven.net

Page 14: Message Queues for Web Applications

Spinning Beach Ball of Death

gareth rushgrove | morethanseven.net

Page 15: Message Queues for Web Applications

http://www.flickr.com/photos/fernando/226930122/

Design for Failure

gareth rushgrove | morethanseven.net

Page 16: Message Queues for Web Applications

Message Queue

Introduce A Message Queue

gareth rushgrove | morethanseven.net

Page 17: Message Queues for Web Applications

And Response Quickly to the Browser

gareth rushgrove | morethanseven.net

Page 18: Message Queues for Web Applications

Message Queue

Send An HTTP Request

gareth rushgrove | morethanseven.net

Page 19: Message Queues for Web Applications

Message Queue

Failure Has No Effect On The Browser

gareth rushgrove | morethanseven.net

Page 20: Message Queues for Web Applications

Message Queue

And We Can Try Again Later

gareth rushgrove | morethanseven.net

Page 21: Message Queues for Web Applications

Message Queue

And Post to Multiple Third Parties

gareth rushgrove | morethanseven.net

Page 22: Message Queues for Web Applications

And How

gareth rushgrove | morethanseven.net http://www.flickr.com/photos/kaptainkobold/860885199/

Page 23: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Message Queue Libraries in...

Ruby and Python and Java and Erlang and Scala and C# and Lua and PHP and...

Page 24: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Message Queue Protocols

STOMP and AMQP and Memcache

Page 25: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Message Queue Software

RabbitMQ and Stompserver and ZeroMQ and Morbid and ApacheMQ and Starling and Beanstalk and Kestrel and MemcacheQ

Page 26: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Simple Starting Point

RabbitMQ and Stompserver and ZeroMQ and Morbid and ApacheMQ and Starling and Beanstalk and Kestrel and MemcacheQ

Page 27: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Great for Production

RabbitMQ and Stompserver and ZeroMQ and Morbid and ApacheMQ and Starling and Beanstalk and Kestrel and MemcacheQ

Page 28: Message Queues for Web Applications

gareth rushgrove | morethanseven.net

Questions?

http://www.flickr.com/photos/luiscdiaz/330340600/