My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Links

What is NGinn.MessageBus

NGinn Message Bus is a very simple ESB for .Net supporting publish-subscribe message distribution. It uses SQL server as message queuing mechanism - each message queue is stored in a separate table.

NGinn Message Bus is a part of my BPM/Orchestration engine called NGinn BPM and serves as a message-oriented communication bus. NGinn Message Bus is functionally similar to other .Net message bus implementations (NServiceBus, MassTransit, Rhino Service Bus) but it's the only service bus based on SQL Server database.

Go to NGinn blog for more details.

Why SQL database

  • because it's easier to admin a database than a set of queues
  • because your data and messages can be kept together and backed-up together
  • because of easier and more efficient transactional processing
  • and because of quite good performance

Main Features

NGinn Message Bus implements publish-subscribe message distribution mechanism and handles transactional & durable messages only. It offers a good performance in transactional processing (is able to process about 1000 messages/second on a cheap laptop) and there's very little performance penalty when using distributed transactions - actually it outperforms MSMQ in typical scenarios involving DTC. NGinn Message Bus has also:

  • support for scheduled messages (messages delivered at specified moment in future)
  • robust retrying strategy for failing messages
  • message TTL (time to live) support
  • sequences - guaranteed order of delivery for a group of messages (by default the order is not guaranteed)
  • http monitoring and management
  • sql and http message forwarding

NGinn project is a work in progress and so is NGinn Message Bus. However, it's already being used in production without any problems.

See GettingStarted page if you want to learn the basics.

Recent changes

  • oct 06, 2011 - Added Saga implementation: Sagas
  • sep 19, 2011 - Added simple json-based rpc mechanism

When to choose nginn-messagebus

  • If you are already using SQL Server and dont want to introduce new technologies to your application
  • If you're not familiar with MSMQ or other message queuing mechanisms but want to have async and durable messaging
  • If your db admins start screaming at you when you mention MSMQ or some other exotic technology they never heard about
  • If you want to keep all the data and messages in a single database
  • When transactions in your application include data operations and sending/receiving of messages

When to look for something else

  • If you need to process thousands or tens of thousands of messages every second
  • If you don't need durable and transactional queues
  • If you're not using SQL Server
  • If you're already using some other messaging software

Source code access

SVN checkout: https://nginn-messagebus.googlecode.com/svn/trunk

Related projects

NGinn.BPM - Workflow/BPM engine for .Net

nginn-exchange for MS Exchange integration

Powered by Google Project Hosting