Skip to main content

Particular Software Blog

Latest articles

  • Productivity power-ups in the August Platform release

    This month, we released an update to our platform, designed primarily to give you a much better user experience. If you have been frustrated by having to deal with large numbers of failed messages, or if you routinely deal with relatively large messages, we have included new features specifically to address your pain points. We've also added multiple productivity enhancements across the platform, so there's sure to be something in it for everybody.

    Read more
  • TransactionScope and Async/Await. Be one with the flow!

    You might not know this, but the 4.5.0 version of the .NET Framework contains a serious bug regarding System.Transactions.TransactionScope and how it behaves with async/await. Because of this bug, a TransactionScope can't flow through into your asynchronous continuations. This potentially changes the threading context of the transaction, causing exceptions to be thrown when the transaction scope is disposed. This is a big problem, as it makes writing asynchronous code involving transactions extremely error-prone.

    Read more
  • On the importance of auditing

    Any good accountant will tell you how important it is to keep receipts. I never imagined that advice was applicable outside of accounting and finance. For example, I once worked on an ordering system, and one day, it was clear that something was broken. Orders that were expected to come from a well-known region on the globe weren’t coming in as usual. The incoming rate was exactly zero; definitely not the same rate as the week before. Read more
  • Async/Await: It’s time!

    Async/Await is a language feature introduced in C# 5.0 together with Visual Studio 2012 and the .NET 4.5 runtime. With Visual Studio 2015 almost ready to be shipped to end-users, we can see that async/await has been around for quite some time now. Yet NServiceBus hasn’t been exposing asynchronous APIs to its users. Why the await? We have been carefully observing the adoption of async/await in the market and weighing its benefits against its perceived complexity. Over the years async/await… Read more
  • Death to the batch job

    This post is part of the NServiceBus Learning Path.

    The Batch Job Troll
    There’s something dangerous lurking in your software. Not just the general lurking, murky, ickiness you might expect. Something big…something ugly. There might even be more than one. It can’t decide if it’s angry or hungry or both. All it knows is it’s having a very bad day. And it’s going to eat you… Ok, maybe it won’t literally eat you, but it will come after your family time, your sleep, and your sanity. Only the things you really care about. Read more
  • Mining for gold in your log files

    Once you’ve already learned the ins and outs of a library, it may seem obvious how it should be used (and which parts should be avoided). The thing is that, from one project to the next, we often make use of new and different libraries and frameworks and may not appreciate some of the more subtle differences among those technologies. The better frameworks out there will log all kinds of information, often telling you when you’re using them incorrectly. So… Read more
  • Empires fall: Decentralize your code to avoid total collapse

    Alexander the Great
    Alexander the Great by Wikimedia Commons — Public Domain
    Ruling the world is hard. Alexander the Great1 may arguably have been the person to come closest to being “Emperor of the World”. In 334 BC, his armies left his home in Macedon (modern-day Greece) and conquered a swath of territory to Egypt and halfway across Asia to northwest India - most of the known world at that point, but ultimately failed in ruling all of humanity when he died at the age of 32 under somewhat suspicious circumstances2. Of… Read more
  • It's official: we are now cool

    We are pleased to announce that we have been selected as a Gartner “Cool Vendor in Web-Scale Platforms” for 2015. This is an accomplishment for us and it goes beyond simply getting a vote of confidence from an influential IT reporting organization. Danny Cohen, Director of Product Development at Particular Software, accepts Cool Vendor recognition from Gartner associates If you walk through the halls of a sufficiently large enterprise and hang around the IT building long enough, you’ll hear someone… Read more
  • Protect your software with the Circuit Breaker design pattern

    Don't get zapped! Protect your software
    Life as a software developer is definitely lived in the fast lane. After weeks and hours of cranking out the code to get the features developed, and after the builds and tests are green and QA stamps its seal of approval, the code is deployed to Production. And then the most dreaded thing happens, the deployed software fails in production in a bad sort of way. In a Murphy’s law sort of way. As the saying goes, “Anything that can… Read more
  • OMG! They Killed My Stacktrace!

    OMG! They Killed My Stacktrace!
    I can’t get that flashing red light on my desktop out of my mind. It’s nagging me. What is it? Oh my… I just killed the build! How embarrassing – only a few weeks on the team and I’m already a trouble-maker. Resistance is futile. The flashing red light got me. Five acceptance tests are failing on the build server. Hold on – those tests are working on my machine! Can’t I just add a works on my machine badge… Read more