10 people following this project (follow)

Project Description

This project aims to provide a free open-source enterprise service bus.

Join our discussion group here: Yahoo Shuttle Service Bus

You can also visit our wiki: http://www.servicebus.co.za

Some 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

Shuttle-Management-Messages.png

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.

Shuttle-Management-Subscriptions.png

Subscription requests

Accept or decline subscription requests. When using the secure subscription manager all automatic subscriptions are registered as requests.

Shuttle-Management-SubscriptionRequests.png

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:

Shuttle-Management-Schedules.png

Capabilities

Shuttle-Management-Capabilities.png

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:

Observable-Pipeline.png

Summary

With the involvement of the developer community we can make this software a success.

PLEASE NOTE
To get you going have a look at the readme.txt in the root folder.

Last edited Apr 23 at 6:07 PM by jabberwocky, version 25