NServiceBus

NServiceBus, the heart of the system, is a messaging and workflow framework that helps create distributed systems that are scalable, reliable and easy to modify. It supports various messaging patterns, handles long-running business processes in the form of sagas and provides abstraction over multiple queueing technologies. While most queueing technologies try to make guarantees regarding 'at least once' or even 'exactly once' delivery, they often fall short of this promise. NServiceBus contains mechanisms to automatically solve intermittent delivery problems by retrying messages and falling back to an error queue where they can be exposed by the rest of the Platform for human intervention (ServiceControl, ServicePulse).

Moreover, NServiceBus is thoroughly extensible and can be tailored for many requirements. It is compatible with several technologies and many elements of the system can be replaced with custom implementations.

Related Articles

  • Concepts Overview
    A high level feature and concept overview of NServiceBus
  • Outbox
    How to configure NServiceBus to provide reliable messaging without using MSDTC or when MSDTC is not available
  • Scheduling
    Schedule a task or an action/lambda, to be executed repeatedly at a given interval.
  • Testing NServiceBus
    Develop service layers and long-running processes using test-driven development.

Overview

NServiceBus compared to WCF and BizTalk.

  • NServiceBus and BizTalk
    NServiceBus guides away from dangerous anti-patterns while providing messaging patterns and integration.
  • NServiceBus and WCF
    Publish/subscribe, fault-tolerance, long-running processes, interoperability
  • Architectural Principles
    NServiceBus helps write code that is robust in production environments, preventing data loss under failure conditions.

NServiceBus and Azure

Using Azure for endpoint hosting and to provide Transports and Persistence

Azure Service Bus Transport

Using Azure Service Bus as transport

Azure Storage Persistence

Using Azure Storage as persistence

Azure Storage Queues Transport

Using Azure Storage Queues as transport

Containers

NServiceBus automatically registers components, user-implemented handlers, and sagas.

  • Autofac
    Configure NServiceBus to use Autofac as a container.
  • Castle Windsor
    Configure NServiceBus to use Castle Windsor as a container.
  • Support for Child Containers
    Child containers are a snapshot of the main container; transient instances are treated as as singletons in the child container.
  • Using IBus in a Message Handler
    Use setter injection or constructor injection.
  • Ninject
    Configure NServiceBus to use Ninject as a container.
  • Property injection
    Configuring property injection.
  • Spring
    Configure NServiceBus to use Spring as a container.
  • StructureMap
    Configuring NServiceBus to use StructureMap as a container.
  • Unity
    Configuring NServiceBus to use Unity as a container.

Endpoints

Describe the concepts of Endpoint and Endpoint Instance.

Error handling

Don't try to handle exceptions in the message handlers. Let NServiceBus do it for you.

  • Automatic Retries
    The message which caused the exception during processing, is automatically retried for the configured number of times before being forwarded to the error queue.
  • Critical exception wait time
    A critical error is raised when timeout retrieval fails.
  • Exception Caveats
    Certain types of exceptions cannot be handled nativity by NServiceBus.
  • Error notifications
    Subscribing to error notifications

Gateway

NServiceBus enables durable fire-and-forget messaging across physically separated IT infrastructure.

Handling a Message

Write a class to handle messages in NServiceBus.

Hosting

Outlines the various approaches to hosting NServiceBus

NServiceBus Licensing

Outlines the usage, management and restrictions of the NServiceBus license.

Interface life-cycles

The life-cycles of the various NServiceBus configuration interfaces

Logging in NServiceBus

Manage and integrate with NServiceBus logging.

Messaging

Outline the various approach to sending-receiving, defining messages and common messaging patterns.

MSMQ Transport

MSMQ is the primary durable communications technology for Microsoft but does not dynamically detect network interfaces.

NHibernate Persistence

NHibernate-based persistence for NServiceBus

Operations

Operations Table of Contents

Persistence In NServiceBus

Features of NServiceBus requiring persistence include timeouts, sagas, and subscription storage.

Message Handling Pipeline

Overview of the message handling pipeline

RabbitMQ Transport

RabbitMQ Transport

RavenDB Persistence

RavenDB persistence documentation

Sagas

NServiceBus uses event-driven architecture to include fault-tolerance and scalability in long-term business processes.

Scalability and HA

Scalability and High Availability options for NServiceBus

Security

Security Table of Contents

Serialization In NServiceBus

How instances of .NET classes are serialized onto the transport.

SQL Server Transport

High-level description of NServiceBus SQL Server Transport.

Transports

All information on the available Transports

NServiceBus Upgrade Guides

Upgrade Guides for NServiceBus.


Last modified 2016-04-04 08:52:00Z