Skip to main content

Particular Software Blog

Latest articles

  • What's new in SQL Server Transport 6.2

    SQL Server Transport is one of our most popular transports. Customers often have deep proficiency with SQL and are able to use SQL Transport to add message queues to new or even legacy systems without needing to adopt (or get approval for) additional technology. This provides a glide path to begin using messaging, including all the advantages in loose coupling and reliability that come with it, and begin learning to design better software systems in a new way.

    SQL Server Transport version 6.2.0 adds a few important features to make building complex systems even easier.

    For extra secure systems, we’ve added support for SQL Server Always Encrypted so that messages can be encrypted so deeply that even SQL Server itself can’t read the messages without the correct keys. For scaled-out endpoints, you can now configure how the load balancing of batches is handled. We’ve also standardized the startup checks that endpoints do across all transaction modes.

    Read more
  • Improvements to monitoring in ServicePulse 1.27

    ServicePulse keeps on growing its arsenal of monitoring tools to help you uncover problems in your system and help fix them.

    In ServicePulse 1.27 we decided to focus on the monitoring views of ServicePulse and make it easier to slice and dice information. We’ve also made some changes to message archiving. Keep reading to learn more about some highlights of what’s available to you now.

    Read more
  • NServiceBus on AWS Lambda

    The NServiceBus.AwsLambda.Sqs package makes it easier than ever to host NServiceBus endpoints in Amazon Web Services (AWS). AWS Lambda is Amazon’s serverless technology for running your code in the cloud with zero administration. You can run code for just about anything and Amazon takes care of running and scaling your code with high availability. You only pay for the compute time you consume.

    As foundations go, this is as strong as bedrock. However, to build a complex distributed system on serverless technology that implements best practices from the Enterprise Integration Patterns book, you need something more that will bridge the gap between the “invisible” server infrastructure and your business code.

    That is where our new AWS Lambda SQS package comes in. NServiceBus provides the infrastructure code not provided by Lambda so that you can write business code and execute it in the Lambda environment. You can even use Lambda, with its cheap hosting model for rapid prototyping, and only later take advantage of the NServiceBus abstraction to easily shift hosting to container-based deployment or even to a competing cloud platform.

    Read more
  • The power of Cosmos DB comes to NServiceBus

    Update: NServiceBus persistence for Cosmos DB is now 1.0. In addition to full production support, that means API stability and backporting of bugfixes. See our release announcement here.

    With the recent preview release of NServiceBus.Persistence.CosmosDB, you can now use Azure Cosmos DB with NServiceBus! Backed by Cosmos DB, a fully managed, globally distributed, elastically scaled, pay-as-you-go service, your NServiceBus-based systems can benefit from guaranteed single-digit-millisecond latency with 99.999% availability. If you are already using Cosmos DB to store your business data, you no longer need to use a different storage technology to store your NServiceBus saga data.

    Read more
  • What's new in ServiceInsight 2.2

    A common problem with most distributed systems is that it’s hard to get a good view of how all the disconnected pieces work together—unless you’re using ServiceInsight. From the audit records of successfully processed messages, ServiceInsight shows how messages are related and gives you visualizations so you can better understand how one message results in another, and how the different parts of the system communicate.

    ServiceInsight 2.2 is out now, with plenty of improvements. This release adds new insights (pun intended) to your distributed systems.

    Read more
  • Optimizations to scatter-gather sagas

    Over the last several months we’ve been noticing that some of our customers were having trouble with the performance of some of their sagas. Invariably, the sagas that were at fault were examples of the scatter-gather pattern, and the ultimate culprit was contention at the storage level due to the optimistic concurrency strategy that was being used.

    This is a fairly common pattern for sagas to implement, and we didn’t want our customers to have to change how they model their business process to get around a performance problem, so we decided to fix it.

    In this article, I’ll explain what the scatter-gather pattern is, how a pure optimistic concurrency strategy created a problem, and what we’ve done to fix it for you.

    Read more
  • Enhancements in NServiceBus Hosting

    The .NET Generic Host has become the de facto method of hosting applications built on .NET Core. To support the generic host, we released the NServiceBus.Extensions.Hosting package to make it simple to host NServiceBus within a .NET Core process or ASP.NET Core web application using the .UseNServiceBus(…) extension method.

    While a massive improvement for easily hosting NServiceBus in a .NET Core process, a few rough edges remained. For version 1.1, we aimed to make it easier than ever.

    Read more

    1. In the article on the ASP.NET Core Web Host, Microsoft states "This article covers the Web Host, which remains available only for backward compatibility. The Generic Host is recommended for all app types."

    2. Microsoft's Dependency Injection recommendations state "Avoid using the service locator pattern. For example, don't invoke GetService to obtain a service instance when you can use DI instead."Also, see Mark Seemann's post Service Locator is an Anti-Pattern.

    3. Such as GitHub Actions, Octopus Deploy, TeamCity, and dozens of others…

    4. Kubernetes, Service Fabric, Docker Compose, etc.

  • What's new in NServiceBus 7.4

    At Particular Software, we don’t believe in packaging all the cool new features into major versions that make it hard to upgrade. We prefer to deliver improvements incrementally in minor releases that are easy upgrades, deferring breaking changes until the next major release to clean things up before the next set of incremental improvements.

    That means that when it comes to new goodies, minor releases are where it’s at, and this minor release is no exception.

    NServiceBus 7.4 includes some great new enhancements that make mapping sagas easier and more powerful, enable multiple different strategies for message conventions, and subdivide a message flow into multiple conversations.

    Read more

    1. Message conventions determine what classes in an assembly are considered messages.

  • Support for Azure Functions

    Update: NServiceBus hosting with Azure Functions for Azure Service Bus is now 1.0. In addition to full production support, that means API stability and backporting of bugfixes. See our release announcement here.

    Microsoft Azure Functions provide a simple way to run your code in the Azure Cloud. They are easy to deploy, scale automatically, and provide many out-of-the-box ways to trigger your code. Rather than pay for an entire virtual machine, you only pay for compute while your code is being executed.

    NServiceBus makes Azure Functions even better. You can use a simple but powerful API to consume and dispatch messages, add robust reliability features like delayed retries, an extensible message processing pipeline, and a suite of tools to help you monitor and maintain your message-driven system. We think they go together like milk and cookies.

    Read more
  • Support for .NET Core 3.1 is here!

    Supporting NServiceBus on .NET Core 3.1 has been a focus for us here at Particular in 2020. Well, the day is finally here. We’re happy to announce that with the latest version of NServiceBus, you can build and deploy your NServiceBus endpoints on .NET Core 3.1, taking advantage of great features like built-in hosting, logging, and dependency injection.

    Read more