Particular Software Blog

RSS Feed
  • 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. Something was misbehaving…

    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 →
  • Inside the fishbowl at NDC Oslo

    With a record breaking 1,900 attendees, 160 speakers, 20 workshops and 170 talks spread over 9 tracks, NDC Oslo last week again asserted itself as a cornerstone of the developer conference calendar. And it doesn't stop there. Furthering the expansion that started in 2013 with the creation of NDC London, it was announced that the NDC will be coming to Australia's Gold Coast in 2016. We were proud to be an official sponsor of NDC Oslo 2015, which ran from…

    Read more →
  • Death to the batch job

    There's something dangerous lurking in your software. Not just the general lurking, murky, ickiness you might expect. Oh no, it's much worse than that. It's something specific. 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. Maybe it won't literally eat you, but it will come after your family time, your…

    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

    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

    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…

    Read more →
  • 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…

    Read more →
  • The secret of better UI composition

    I was at a customer site, and we were analyzing their business processes with the intent of building a new component of their system. The customer is basically a logistics company, whose responsibility is to deliver goods on behalf of their customers and, when applicable, to charge the recipient of the goods for the delivery and handling process. During this discussion, the accounting manager raised an interesting issue. One of the internal departments is responsible for monitoring the overall state…

    Read more →
  • The day we almost lost an invoice

    The day started like any other day working as a solutions architect for a healthcare invoice processing system. When I came into the office I didn't anticipate that this was going to be a special day. I only realized it when a customer called in and asked for a specific invoice that should have been processed in our system. We couldn't find it! It just wasn't there at all. Sweat was dripping down my neck. Did we just lose…

    Read more →
  • Microservices: the future or empty hype?

    As is common with the advent of new technology, there currently exists a lot of hype around the concept of microservices. Hype does not necessarily equate with superiority, and blindly following the hype can easily result in us making all of the same old mistakes in completely new and different ways. In order to be more effective at software development, we need to take a step back and unravel the hype from reality. There are a few broad classes of…

    Read more →
  • Status fields on entities – HARMFUL?

    This article was originally published in NDC Magazine, no. 3 / 2014 It all started so innocently – just a little status field on an entity. Now, there’s no way to know whether it was truly the root cause of all the pain that came afterwards, but there does seem to be some suspicious correlation with what came next. Today, our batch jobs periodically poll the database looking for entities with status fields of various values and, when they do,…

    Read more →
  • Looking back at NSBCon 2014 by Roy Cornelissen and Mark Taling

    A few weeks ago, Roy Cornelissen and I left for London to speak at the first ever “All about NServiceBus”-conference: NSBCon 2014. Coincidentally it was also a first time I would be attending a conference, ever! Needless to say, I was pretty excited…

    Read more →
  • NServiceBus under a new umbrella

    Now much more than just a service bus, we’re introducing new tools for modeling distributed systems (integrated in Visual Studio), managing queues and messages, as well as for visualizing cross-endpoint message flows.

    Read more →