Project Description
A WCF based ServiceBus that provides durable messaging (SqlServer Db or MSMQ, extensible) with support for a variety of filter types, including TOPIC (regex) and XPATH filters. Subscriber and Publisher APIs. Compatibility with existing WCF clients/services. Static or Run-time configuration of Subscriptions.

Current Status
  • Working towards v2.0:
    • Adding persistent vs. non-persistent subscriptions.
    • Adding/improving error-handling functionality when using the SqlDb Message Persistence (i.e. configuring MaxDeliveryAttemptCount/DeliveryAttemptInterval per subscription).
    • Adding Transformation infrastructure.
    • Adding Validation infrastructure.
    • Several refactorings.

v1.1 Release Notes
  • Added test application to test/evaluate Subscriptions, including topics, topic filters and xpath expressions.
  • Added a Sql Server Db for message storage.
  • Added Advertisements. Advertisements are Publisher registrations to associate a messages to topics based on filters (a topic will be associated based on publisher filters before the message hits the topic evaluation stage).
  • Added client side APIs (Publisher and Subscriber) to easily set up pub/sub over WCF.

Why RockBus?
  • Reliable messaging using any of the following durable backing stores:
    • Custom SQL Server database (status: beta)
    • MSMQ (netMsmqBinding)
    • SQL Server Service Broker (SsbBinding: ssbwcf.codeplex.com)
    • Possibility to implement your own MessageRepository.
  • Topic based publish/subscribe using TOPIC regex expressions.
  • Content based routing using the .NET message filter infrastructure, including XPATH filters.
  • Advertisements: Publisher registration information, containing filter-to-topic mapping.
  • Dynamic (@run-time) publish/subscribe (adding/removing subscriptions/routing-rules at run-time) through WCF service interface
  • OneWay/TwoWayAck/Request-Response Sync/Async Transactional/Non-Transactional Durable/Non-Durable Communication/Message Delivery through WCF Protocols/Bindings
  • Support for any WCF binding:
  • Pluggability:
    • Caching: EntLib or AppFabric
    • ConfigurationRepository: Sql Server Db, EntLibCache or AppFabric cache (or implement your own SubscriptionRepository)
    • Pluggability for message transports (queue frameworks, database)
  • Easy application of RockBus into an existing WCF infrastructure, because of compatibility options:
    • You can 'insert' RockBus in between a client an service, without affecting client and service.
    • Support for void-response generation/registration.
  • Flexible hosting: IIS, Console host (wcf self-host), and/or any of your existing processes
    • Optionally install as centralized broker, or use as distributed bus across your existing processes
  • Failover & Scalability through SQL Server or MSMQ.

RoadMap
See the work items for an overview of the open issues.

Looking for contibutors
This project is looking for contributors! If you're interested to contribute, pls. contact me.

Relevant links:

Sela Unity WCF ConfigurationSectionDesigner FluentValidationFluentAssertions

Last edited Mar 15 at 9:28 AM by BVeldhoen, version 56