Most of you have probably visited a Starbucks at least one or twice, for your coffee fixes.
I don’t know if you’ve ever noticed this, but the way their operations is set up, is remarkably similar to the way messaging architecture systems like RabbitMQ and Microsoft Message Queue (MSMQ) process high volumes of data.
It’s no coincidence when you examine the way national coffee chains like Starbucks handles the giant stream of customers that swing through their doors every day.
When you enter a Starbucks, there’s are two distinct sections of the store …. the ordering line and the pick up line.
When it’s your turn in line, you tell the barista at the cash register what you want.
The barista takes down your order and grabs however number of empty coffee cup(s) they’ll need for your order. They will also ask your name, which the barista will write on the cup or cups that represent your coffee order.
Your cup will get passed down and sit in line in a “queue” of other cups for other customers.
A different barista will take the first cup from the queue line and begin making whatever drink is required. Once the drink is finished, it’s placed in the pick up section of the store. The barista shouts out the name designated on the cup, which tells the customer their drink order is ready.
And the process is repeated over and over until all drink orders have been processed and picked up by the customer.
If you think about why Starbucks and other coffee chains utilize this system, imagine what would happen if there was just a single employee working the order line, making the drink orders, and working the pickup line.
The line would be around the block! Assuming customers are patient enough to stick around, when there’s plenty of other coffee shops around to service their orders!
What Starbucks has been done is design itself around a HIGH TRAFFIC, HIGH TRANSACTION system. Whether it’s one customer or hundreds, their system has been designed to be scaleable.
In the e-commerce world, there is the same need to create systems that are highly scaleable and efficient.
Think about major e-commerce companies that have to serve millions of customers a second!
ypal, EBay, Amazon, major online banking institutions like JP Morgan and Bank of America.
All these systems must handle and process MASSIVE numbers of transactions.
That’s where distributed messaging systems like RabbitMQ and Microsoft Message Queue (MSMQ) come to the picture.
Much like the barista who takes your drink order and marks your name on your drink cup, you “publish” a message onto a queue. Your message stays in the queue until an interested party picks it up and does whatever it needs to do to process your message.
When your message is finally processed, it “signals” to whoever is interested in that message, that it is ready to be picked up, much in the same way you go to the pick up section of Starbucks when you hear your name getting called out that your drink order is ready to be picked up.
This kind of distributed messaging architecture is perfect for any sort of high volume system where you need to be able to handle massive amounts of transactions.
E-commerce type systems are perfect for this kind of architecture. Think about how many people order things on EBay and Amazon per second. Or the millions of banking transactions per second that Paypal processes.
Enterprise developers will find messaging architecture systems a powerful tool in their digital toolbox.