Project Description
This project aims to provide a free open-source enterprise service bus.
Join our discussion group here:
Yahoo Shuttle Service BusYou can also visit our wiki:
http://www.servicebus.co.zaSome quick information:
- C#
- Core has no dependancies on third-party components
- Supports msmq (production-ready) and sql server table-based queues (not for production) out-of-the-box
- Supports command and event message (publish/subscribe)
Health Monitor
This component registers capabilities and handles low-level auditing of messages. You would typically forward messages to the Health Monitor. In time we will be adding metrics and SLA monitoring here.
Windows management environment
A plug-in based architecture used to manage various components within the service bus deployment.
Messages

View messages in queues and delete or move them to another queue. For instance, messages in an error queue can be returned to their source queue.
All data in the message is displayed in a hierarchical manner so that a message may be investigated and, for example, failure messages viewed.
Subscriptions
Add or remove subscriptions. This entails having event message types sent to a particular inbox work queue.
Subscription requests
Accept or decline subscription requests. When using the secure subscription manager all automatic subscriptions are registered as requests.
Scheduling
You can set up scheduled messages. These are then sent to the configured endpoint at times satisfied by a CRON expression. Since you already have handlers defined that responds to a messages you simply add a handler for the
ScheduleDueMessage message and send your actual message to the local uri. For instance, you may have a handler for your
SendNotificationsCommand but you require notifications to be processed twice a day. The scheduler service will then send a
ScheduleDueMessage to the same endpoint uri handling the
SendNotificationsCommand message but simply does a SendLocal(new*SendNotificationsCommand()).
So you get enterprise scheduling for free straight off the bat:
Capabilities

You can add the capability module to your endpoints to publish capabilities. The include the following:
- Message Type Handlers
- Message Type Senders
- Message Type Publishers
- Distributors
- Workers
The capability events are handled by the Health Monitor to register the various capabilities as your system runs. This means that you have an operational view of your endpoints and the processing that takes place on the various machines.
Pipeline-based processing
Shuttle makes use of event-based pipelines for:
- Sending messages
- Receiving / handling messages
- Outbox processing
- Distributor processing
- Service bus startup
You can even add your own event anywhere in the pipeline. Various observers handle these events so you can add an observer to any event:
Summary
With the involvement of the developer community we can make this software a success.
PLEASE NOTETo get you going have a look at the
readme.txt in the root folder.