Skip to main content

Particular Software Blog

Latest articles

  • UI composition - the blind spot of distributed systems

    When architecting a distributed system, it’s easy to get caught up in the excitement of all the cloud backend services available to us. Azure Service Bus! AWS Lambda! CosmosDB! We spend a lot of time decoupling all our backend with microservices, each with their own responsibility and stack and so forth, that we often forget: the front-end has to talk to all of these services. But it can be decomposed into components just as easily as the back-end services can. Here’s a story of how we did it.

    Read more
  • The day we almost lost an invoice

    Lost invoice
    The day started like any other day working as a solution 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 an… Read more

    1. It would be easy to hit a maximum message size when using other message queues as well. Amazon SQS, Azure Queues, and MSMQ all have hard limits on size too. RabbitMQ is one notable message queue that does not have a limit, but even then, the larger your messages become, the worse a RabbitMQ system will perform.

  • 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?

    Figure 1: Introducing a batch job into a system results in the fragmentation of business logic
    Figure 1: Introducing a batch job into a system results in the fragmentation of business logic
    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
  • 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