Skip to main content

Particular Software Blog

Latest articles

  • Cross-platform integration with NServiceBus native message processing

    When the Romans met the Gauls for the first time, they couldn’t talk to each other. The Romans spoke Latin, and Gauls a Celtic language. How could they communicate? It must have been difficult to start with simple gestures, slowly building enough concepts, until a full translation guide was possible. Perhaps one day, as in Star Trek, a universal translator will enable us to talk to anyone regardless of their language, even if chah jatlh Tlhingan. 1

    Sometimes I feel like a Roman meeting a Gaul for the first time. Different technologies make sense to address different problems. For example, if your order entry front end can benefit from rapid prototyping, you should be able to use Ruby on Rails and Active Record. In your back-end system, you might benefit from event-driven architecture, automatic message retries, and orchestration of long-running business processes. In that case, you should be able to use C#, RabbitMQ, and a messaging framework like NServiceBus.

    But then, how do we get these parts to communicate and work together?

    Read more

    1. they speak Klingon

    2. Technically, IronRuby does exist for this, but……

    3. Raise your hand if you've ever had a problem where your JSON serializer wouldn't talk to somebody else's JSON serializer. 🙋

    4. An endpoint is just a short name for a logical message processor.

    5. Plain Old C# Object

  • Fallacy #8: The network is homogeneous

    Interoperability is painful.

    Around 2005 or 2006, it wasn’t so bad. Most of the code running on the planet, at least the code that mattered, was written in .NET or Java, and interoperability via web services was at least serviceable. Since then, things have gotten gradually worse.

    First came Ruby and Ruby on Rails. In the early days, it did not support web services like other platforms did. Next came the dawn of the NoSQL movement, driven at least partially by large companies with no incentive to interoperate. Google built BigTable, Amazon built Dynamo, Facebook built Cassandra, LinkedIn came up with Voldemort. None of these things can talk to each other.

    Then came REST, or in other words, “something I invented myself over HTTP.” Each RESTful endpoint is that developer’s definition of what REST means, which is different from what every other developer thinks REST means.

    Competitive pressures, together with companies’ desire to create vendor lock-in, suggest that we can expect more divergence to occur in the future.

    Read more
  • NServiceBus with Azure Functions turns 1.0

    NServiceBus support for Microsoft Azure Functions, previously available as a preview package, is turning the big 1.0 and is now generally available.

    Over the past nine months, we’ve been offering NServiceBus support for Microsoft Azure Functions as a Preview. This marked the first in a series of previews designed to provide new capabilities to the Particular Software Platform and explore new options for NServiceBus customers.

    Now we’re adding Version 1.0 to its credentials, which means that in addition to production support, we’re also committing to all aspects of our support policy, including API stability and backporting of bug fixes. Plus we added a few more features, so you can do a lot more with Functions too.

    Let’s take a look.

    Read more
  • Azure Storage Queues learns some new tricks

    Azure Storage Queues is a basic yet robust queueing service available on the Azure platform. In contrast to other messaging services in Azure, it has very few features out of the box. For example, it lacks concepts like topics and subscriptions to build publisher and subscriber topologies—these are capabilities NServiceBus adds on top of Azure Storage Queues. In our latest enhancement release, we’ve added native publish/subscribe to our Azure Storage Queues transport, creating feature parity between Azure Storage Queues and… Read more
  • What's new in SQL Persistence 6.1

    Business runs on SQL. As popular as NoSQL databases have become, you’d be hard-pressed to find a successful business that isn’t running some flavor of SQL somewhere.

    For NServiceBus systems, our SQL Persistence package allows you to use whatever flavor of SQL works best for you, supporting dialects for Microsoft SQL Server, MySQL, PostgreSQL, and Oracle.

    SQL Persistence 6.1 is a big release. In it, we now offer a new tool for generating scripts for NServiceBus tables, enable support for SQL Server Always Encrypted, have begun to expand our testing to MariaDB and Amazon Aurora, have solved a problem with ever-expanding outbox storage, and added controls for managing transaction isolation level.

    Read more
  • Fallacy #7: Transport cost is zero

    Of course, there are upfront and ongoing costs associated with any computer network. The servers themselves, cabling, network switches, racks, load balancers, firewalls, power equipment, air handling, security, rent/mortgage, not to mention experienced staff to keep it all running smoothly, all come with a cost.

    Companies today have, for the most part, accepted this as just another cost of doing business in the modern world.

    With cloud-based server resources, this equation changes only slightly. Instead of paying for a lot of these things upfront, we instead lease them from the cloud providers. It may change how a company can represent these costs on a balance sheet, but overall, it’s the same concept.

    But, we also have to pay for bandwidth. In order to connect our data center to the rest of the world, we must exchange currency for the transport of our bits and bytes. In the cloud, we must pay this also, whether directly or as part of the cost of whichever service we’re using.

    Read more
  • Amazon SQS native integration and IAM policy management

    The AmazonSQS transport in NServiceBus uses Amazon Simple Queue Service in conjunction with Amazon Simple Notification Service for a powerful queueing and publish/subscribe experience for AWS, whether using traditional hosting or in serverless scenarios with AWS Lambda. Version 5.3 of the Amazon SQS transport includes better support for native integration with external systems, as well as improvements to allow subscribing to many more event types than with the previous version of the transport and to make IAM policies much easier… Read more
  • Updates to PowerShell modules

    The PowerShell modules for NServiceBus and ServiceControl are lesser-known, but important, tools in the Particular Software toolbox. Both provide crucial support for automation when deploying NServiceBus endpoints and ServiceControl instances in DevOps workflows.

    We’ve updated the packages for both PowerShell modules to support PowerShell 5 and to make them easier to use.

    Read more
  • What's new in ServiceInsight 2.4

    In this release of ServiceInsight, we’ve focused on productivity enhancements that will make ServiceInsight an even more valuable member of your distributed systems toolkit.

    ServiceInsight 2.4 adds the ability to have multiple ServiceControl connections active at one time, introduces a plug-in architecture for custom message viewers so that you can view the message body even if that message is compressed or encrypted, includes better controls for paging data, and better support for roaming profiles, among other minor feaures and bugfixes.

    You can download the latest version of ServiceInsight now, and then read on to find out about the various productivity improvements in this release.

    Read more
  • Autosave for your business

    If you’re a long-time video game player like me, your muscle-memory vividly remembers the F5 key’s location on your keyboard. For everyone else: F5 is a common key-binding for “quicksave” in computer-games. And like many others, I learned how to use it the hard way. After spending hours sneaking through dungeons, battling orcs, and looting valuable treasures, some nasty troll made an unexpectedly quick end to my character. That’s when I would realize that I hadn’t saved my game for a very long time and had to start over. From that moment on, I’d save my game as often as I could, and F5 became my closest ally.

    Modern games now provide a built-in feature called autosave. These games save your progress automatically now and then so that you won’t lose all your progress—only a few minutes at worst. This might sound trivial and obvious, but it is a game-changer for player experience. The player can now focus on solving their mission rather than the mechanics of the game itself.

    Why are we talking about video games when we have important business (let’s say, selling video games) to do? Let me ask a different question: what if that nasty end boss doesn’t come in the form of a troll? What if the end boss is a network error, power outage, concurrency conflict, or even squirrels?

    Read more
Need help getting started?