Slide 1

Slide 1 text

the message queue is dead railsberry 2013, mathias meyer, @roidrage

Slide 2

Slide 2 text

travis-ci.org

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

the golden rules of message queues

Slide 7

Slide 7 text

#1 everything is a queue

Slide 8

Slide 8 text

www email upload live updates

Slide 9

Slide 9 text

rabbitmq activemq mqseries nsq beanstalkd sqs gearman qless kafka kestrel qpid sidekiq resque zeromq celery mqseries stormmq amqp jms hornetq swiftmq delayed_job

Slide 10

Slide 10 text

tasks

Slide 11

Slide 11 text

publish/subscribe

Slide 12

Slide 12 text

publish/subscribe

Slide 13

Slide 13 text

broker

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

log streaming databass

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

unbounded queues

Slide 18

Slide 18 text

#2 a queue is either empty or infinitely full

Slide 19

Slide 19 text

the art of capacity planning

Slide 20

Slide 20 text

50 msg * 60 seconds * 30 minutes = 90000 msg

Slide 21

Slide 21 text

peak capacity: 120 msg/s

Slide 22

Slide 22 text

90000 msg / 120 msg/s = 12,5 min

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

#3 whenever something breaks, it's a queue backing up or dropping messages

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

databass x x P x

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

retry databass x x P x

Slide 29

Slide 29 text

exponential backoff databass x x P x

Slide 30

Slide 30 text

handling queues involves business decisions

Slide 31

Slide 31 text

a thought experiment

Slide 32

Slide 32 text

message queues introduce tight coupling

Slide 33

Slide 33 text

hide the queue api

Slide 34

Slide 34 text

api

Slide 35

Slide 35 text

api

Slide 36

Slide 36 text

the queue is dead, long live the queue

Slide 37

Slide 37 text

no berries were harmed © railsberry