Distributed Applications

Messaging shouldn’t be used for queries

21 August 2014

When developers first start using messaging they can be tempted to use it as a brand new hammer for every nail. Messaging brings a lot to the party, but it isn’t necessarily a suitable transport for fast, synchronous query processing.

Using a tolerant reader for web service integrations in .Net

22 July 2014

Using version tolerant readers can help you to cope with changes to service contracts though this does come at the expense of a weaker contract. The approach is more appropriate for fluid services that are prone to frequent change.

The problem with tiered or layered architecture

9 July 2014

An architecture based on tiers or layers is too inflexible to deal with the more flexible demands of modern systems, particularly when you working with high-volume systems that require distributed processing.

Are microservices just “SOA done properly”?

12 June 2014

There’s nothing really new about many of the ideas that underpin microservices. Are they just an agile re-branding of SOA?

Eventual consistency and the trade-offs required by distributed development

4 May 2014

Developers who have been brought up on the certainties of ACID transactions often have a problem trusting eventual consistency. Once you start exploring the requirements in more depth this really so much of a handicap.

A shared database is still an anti-pattern, no matter what the justification

22 February 2013

Shared databases risk turning into performance bottlenecks that encourage close-coupling and create a single point of failure. There’s no justification for using them to integrate processes and applications.