Ayende @ Rahien

It's a girl

Rhino Service Bus: The Starbucks example

Yesterday I finally completed the Starbucks sample for Rhino Service Bus. It is surprising to see how many aspects that little sample required.

There are several of highlights in the sample.

  • There are three actors in the application:
    • Barista
    • Cashier
    • Customer
  • There is zero setup necessary, Rhino Service Bus will create the queues if they don’t already exists. Again, the idea of reducing moving parts.
  • All three actors are running in the same process – but each is running in a different AppDomain.
    Note that this is a common deployment choice for development, but not one that I would use for production.
    The idea is that this make it significantly easier to debug & develop a distributed application.
  • There is very little configuration whatsoever. And a lot of conventions about how to figure out what consumers to use and how to build it.
  • The use of sagas & conversations is demoed. The entire buying process is a single conversation composed of several sagas.
  • The customer actor is showing how we can create instance & temporary subscriptions.


01/14/2009 02:15 PM by

Thanks Ayende!

This is a great setup for most all my service bus needs right now

Especially the use of the sagas/conversations piece

Rik Hemsley
01/14/2009 04:04 PM by
Rik Hemsley

What's the reasoning behind the use of the term 'saga'? To me, a saga is an epic tale (a long story), not a part of a single conversation.

01/15/2009 12:42 AM by

Thanks for your work, please would you guide me to where I can download the Bus and the Startbucks example. Thanks

02/17/2009 09:55 AM by

can you comment on why the consumer's instance subscriptions are stored in the "subscription" subqueue of the cashier and just in queue messages in the barista?

Ayende Rahien
02/17/2009 11:54 AM by
Ayende Rahien

I am not sure that I understand the question

02/17/2009 01:30 PM by

Inspecting the customer's two instance subscriptions using "Computer Management>Message Queuing" during debugging, you can see that the "DrinkReady" temp subscription is in "starbucks.barista\Queue messages" while the "PaymentDue" temp subscription is in "starbucks.cashier\subscriptions".

I was just wondering about this difference in design.

Ayende Rahien
02/17/2009 01:48 PM by
Ayende Rahien

You caught this in a moment in time.

Instance subscriptions are not kept in the main queue

Comments have been closed on this topic.