Skip to main content

Particular Software Blog

Latest articles

  • Multi-tenancy support in SQL Persistence

    Multi-tenant systems are a popular way to use the same codebase to provide services to different customers while minimizing the effect they have on each other. In a distributed message-based system you need to partition customer information and segregate messages from different customers as well. Additionally, you have to make sure different system components are tenant-aware.

    In NServiceBus SQL Persistence 4.6, we have added new features that make it a bit easier to create multi-tenant systems. Let’s see how it all works.

    Read more
  • Fallacy #4: The network is secure

    There are a myriad of security-obsessed organizations scattered throughout the world that take security concerns to the verge of paranoia.

    In one such organization I’ve heard of, there existed two separate networks. Everyone had two computers without external disk drives of any kind. Inserting a USB drive would not work, and trying to use one would instantly alert the sysadmins that a workstation was compromised. To get data from a different network, you needed to browse in a separate room, as workstations did not have access to the Internet.

    Once you found the data you needed, you could download it to a floppy disk and then hand the floppy over to a sysop. The sysop would copy the contents to a mirror folder, which would analyze the contents with every virus scanner imaginable before mirroring them to the development network. But that sync only occurred once per hour.

    Paranoid? Maybe. If you’re just selling widgets on a website, then probably. But if your organization is working on defense contracts or controls critical infrastructure like electrical grids, perhaps the paranoia is justified.

    The only truly secure computer is one that is disconnected from any and all networks, turned off, buried in the ground, and encased in concrete. But that computer isn’t terribly useful.

    Read more
  • What does idempotent mean in software systems?

    You’ll often come across the term idempotent in software, especially when you design distributed, message-based systems for the cloud. It seems like a concept that is easy to grasp at first but it’s important to know the intricacies of idempotence if you want your systems to be scalable and reliable.

    Learn more about the challenges of implementing idempotent solutions: See Udi Dahan's presentation on Advanced API and Integration Problems and Patterns.
    Read more
  • Fallacy #3: Bandwidth is infinite

    Everyone who is old enough to remember the sound of connecting to the Internet with a dial-up modem or of AOL announcing that “You’ve got mail” is acutely aware that there is an upper limit to how fast something can be downloaded, and it never seems to be as fast as we would like it.

    The availability of bandwidth increases at a staggering rate, but we’re never happy. We now live in an age when it’s possible to stream high definition TV, and yet we are not satisfied. We become annoyed when we run a speed test on our broadband provider only to find that, on a good day, we are getting maybe half of the rated download speed we are paying for, and the upload speed is likely much worse. We amaze ourselves by our ability to have a real-time video conversation with someone on the other side of the world, but then react with extreme frustration when the connection quality starts to dip and we must ask “are you there?” to a face that has frozen.

    Today, we have DSL and cable modems; tomorrow, fiber may be widespread. But although bandwidth keeps growing, the amount of data and our need for it grows faster. We’ll never be satisfied.

    Read more
  • Has Microsoft really changed?

    New Leaf
    Did Microsoft really turn over a new leaf?

    People have a lot of opinions about the “new” Microsoft under CEO Satya Nadella. They’ve embraced open-source, including .NET Core. They declared Microsoft ❤ Linux. They acquired GitHub. It’s been a wild ride for those of us used to the closed, dare I say grumpy Microsoft of the past.

    But are things different today? When the rubber hits the road, is Microsoft really more open, more accessible, more helpful?

    When we were building the Azure Service Bus transport for .NET Core we got a chance to find out.

    Read more
  • You don't need ordered delivery

    In our family it’s a tradition that you get to decide what we’ll have for dinner when it’s your birthday. On my daughter’s last birthday, she picked pizza. I took her to the nearby pizza shop to decide what pizza to get.

    A large screen dominates one wall of the pizza place, showing each order as it progresses through each stage of preparation. As I was looking at the screen, I noticed some names suddenly switched. Some pizzas with fewer toppings could be placed in the oven faster, and some would take longer to bake than others. In various steps towards putting the pizza in its box, the process could take longer depending on the pizza. My daughter’s pizza required additional preparation time, so other customers were able to leave before we were. In short, pizzas were not being delivered in the same sequence as they were ordered.

    Read more
  • Introducing the new Azure Service Bus transport for .NET Core

    NServiceBus Azure Service Bus Transport

    The wait is over! Today we’re releasing the new Azure Service Bus transport, which is fully compatible with NServiceBus 7 and .NET Core.

    You will now be able to run NServiceBus endpoints using Azure Service Bus anywhere.

    Read more
  • Third-order effects and software systems

    At the height of the Cold War, the United States passed the Federal Aid Highway Act of 1956, giving birth to the Interstate Highway System. Fueled by the fear of foreign attack and the need to quickly transport troops and equipment across the continent, the network of protected access highways ended up transforming the nation’s economy and culture forever.

    It was perhaps easy to predict a first-order effect: people would travel longer distances given the ease of doing so. A second-order effect was perhaps also easy to foresee: people would be much more likely to work or shop further away from home.

    Read more
  • Classic rock and async/await: Stop breaking the rules!

    The universe demands some things must always occur in a certain order. Queen’s “We Will Rock You” must be followed by “We Are The Champions.” Same with Led Zeppelin’s “Heartbreaker” -> “Living Loving Maid,” Van Halen’s “Eruption” -> “You Really Got Me,” and Boston’s “Foreplay” -> “Long Time.” You have to. Every DJ knows this. It’s the rule!

    Read more
  • NServiceBus 7 for .NET Core is here

    Update: NServiceBus 7 now supports .NET Core 3.1.

    It’s a pretty cool time to be a .NET developer. Don’t believe it? Check out this excerpt from a popular children’s book1:

    Congratulations! Today is your day.
    You’re off to Great Places! You’re off and away!

    Maybe you like Linux or have a MacBook,
    Or want to host code without breaking your checkbook.
    The license for Windows can be a bit pricey.
    Getting approval for more servers can be a bit dicey.

    But now you have choices, it’s a bit of a shocker.
    You can even choose to deploy your apps using Docker!
    With your skills in .NET no opportunity shall go by,
    When you can even deploy on a Raspberry Pi.

    And now NServiceBus is ready, we’ve got your back.
    The ultimate cross-platform messaging stack!
    You’re off to Great Places! Today is your day!
    There’s more than Windows now, so…get on your way!

    -Adapted from Oh, the Places You'll Go! by Dr. Seuss

    In other words, NServiceBus 7 for .NET Core is here.

    Read more