30% OFF - Use code HANDSON30 for 30% off any course or Dometrain Pro! Browse courses →
  • Courses
  • Learning Paths
  • Blogs
  • Authors
  • Leaderboard
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Getting Started: Messaging in .NET with NServiceBus

    Simplify distributed systems messaging in .NET using the battle-tested NServiceBus framework.

    About This Course

    Gain practical, hands-on experience with NServiceBus and the Particular Platform. You will build a complete, foundational system from the ground up, mastering the essential components: messages, endpoints, transports, routing, and persistence. As you construct this system, you will be introduced to crucial architectural concepts, including sagas for managing simple long-running business processes and the Outbox pattern for ensuring reliable message delivery. Additionally, you'll learn to observe and gain insight into your messaging system using specialised tools such as ServiceControl and ServicePulse. By the end of the course, you will have all the skills needed to begin working with NServiceBus in real projects.

    Course Curriculum

    5h 10m 7 sections
    Welcome
    02:25 Free preview
    What will you learn in this course?
    03:49 Free preview
    Who is the course for and prerequisites
    02:22 Free preview
    What is NServiceBus
    02:12
    Why use an abstraction like NServiceBus
    04:40
    Particular Platform tools overview
    01:19
    Messages and message types
    03:18
    Defining messages
    02:09
    Message design considerations
    02:12
    Persistence
    02:27
    Introducing the Learning Transport
    00:48
    Exploring the project
    01:28
    Configuring NServiceBus
    02:16
    Adding a serialization type
    00:50
    Transports
    02:00
    Using the IMessageSession
    00:49
    Sending our first command
    03:23
    Routing
    00:44
    Using the Learning transport
    04:35
    Endpoints
    05:38
    Obtaining a developer license
    04:11
    Installing Particular Templates
    01:27
    Creating a new endpoint
    02:38
    Reorganizing the project
    04:38
    Handling messages
    09:54
    Controlling the OrderId
    02:27
    Publishing events
    09:50
    AutoSubscribe and events
    03:12
    Section recap
    01:04
    Installing RabbitMq in Docker
    01:00
    The RabbitMq transport
    04:48
    Enabling and using Installers
    05:22
    Callbacks and the Request/Reply pattern
    10:32
    Message headers
    01:26
    Adding custom message headers
    02:41
    Reading message headers
    01:51
    Setting a message destination
    03:31
    Adding a global header
    01:58
    Mutators
    11:21
    Behaviors
    05:30
    Filtering message types in Behaviors
    00:41
    Enforcing validation rules
    03:47
    Why use Behaviors
    01:23
    Time to Live of a message
    01:33
    Expiring messages per type
    04:49
    Expiring messages globally
    00:51
    Considerations about TTBR
    01:42
    Section recap
    01:17
    Intro to dealing with errors
    01:38
    Types of failures & retry policies
    04:10
    Configuring immediate retries
    04:04
    Delayed retries
    04:32
    Unrecoverable exceptions
    02:09
    Error notifications
    02:42
    Using Automatic rate limiting
    07:05
    Considerations about Rate limiting
    01:45
    Particular Platform - Using SCMU to install ServiceControl
    05:43
    Using ServicePulse
    01:59
    Recoverability with ServicePulse
    03:55
    Enabling Message editing
    02:47
    Section recap
    01:12
    The Outbox pattern
    06:22
    Delivery vs Processing
    04:21
    Inbox pattern
    01:33
    Revisiting the project
    02:32
    Enabling the outbox
    02:12
    Customizing the outbox
    02:59
    Implementing the outbox
    06:38
    Concurrency control in the outbox
    03:02
    Transactional Session
    02:35
    Enabling the transactional Session
    01:04
    Implementing a transactional Session
    07:11
    Section recap
    02:21
    The saga pattern
    04:27
    Orchestration vs Choreography
    04:03
    Adding a Saga
    03:28
    Defining Sagas
    12:10
    Timeouts and scheduling Events
    03:45
    Enabling SagaAudit and message auditing feature
    02:51
    Debugging sagas with SagaView
    04:41
    Publishing events from the Saga
    08:39
    Compensating an event
    09:27
    Removing a saga from the database
    00:19
    Saga design best practices
    03:40
    Considerations about ending the saga
    00:58
    Handling out-of-order messages
    01:12
    Section recap
    03:17
    Licensing considerations
    03:27
    Conclusion
    02:38

    Meet Your Instructor

    What's New

    Getting Started: Model Context Protocol (MCP)
    course

    Getting Started: Model Context Protocol (MCP)

    Learn how to get started with the Model Context Protocol (MCP) and integrate it into your applications.

    Learn more about Getting Started: Model Context Protocol (MCP)
    Hands-On: Learn TypeScript
    course

    Hands-On: Learn TypeScript

    Learn TypeScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn TypeScript
    Hands-On: Learn JavaScript
    course

    Hands-On: Learn JavaScript

    Learn JavaScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn JavaScript
    Hands-On: Data Structures & Algorithms in C#
    course

    Hands-On: Data Structures & Algorithms in C#

    Master data structures and algorithms through hands-on coding exercises in C#. Free to enroll for 7 days!

    Learn more about Hands-On: Data Structures & Algorithms in C#
    Blogsmith.ai
    feature

    Blogsmith.ai

    Turn your videos into blogs and newsletters with AI. Check out our new product at blogsmith.ai.

    Learn more about Blogsmith.ai
    Leaderboard
    feature

    Leaderboard

    See how you stack up against other learners. Track your progress, climb the ranks, and compete with the Dometrain community.

    Learn more about Leaderboard
    Hands-On: Learn PostgreSQL
    course

    Hands-On: Learn PostgreSQL

    Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn PostgreSQL
    Free Hands-On: C# for Beginners
    course

    Free Hands-On: C# for Beginners

    Learn C# through hands-on coding exercises. Practice what you learn with interactive challenges designed for everyone, from beginners to experts.

    Learn more about Free Hands-On: C# for Beginners
    Getting Started: AI for .NET Developers
    course

    Getting Started: AI for .NET Developers

    Get started with integrating AI into your .NET applications effectively using the latest LLM best practices.

    Learn more about Getting Started: AI for .NET Developers
    Getting Started: Building .NET Applications on AWS
    course

    Getting Started: Building .NET Applications on AWS

    Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

    Learn more about Getting Started: Building .NET Applications on AWS
    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn more about What's new in C# 14
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn more about Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn more about From Zero to Hero: SignalR in .NET
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn more about Deep Dive: Solution Architecture
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn more about Migrating: ASP.NET Web APIs to ASP.NET Core
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn more about Getting Started: Caching in .NET
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn more about From Zero to Hero: Testing with xUnit in C#
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn more about Create a ChatGPT Console AI Chatbot in C#