The REST flame wars – common disagreements over REST API design

22 November 2014

Debates on the finer points of REST can bring out the worst in people as they seek to define what is and is not “RESTful”. In most cases the debate is unlikely to make the difference between success and failure for an API.

Why you shouldn’t create asynchronous wrappers with Task.Run()

3 November 2014

Many developers confuse asynchronous operations with parallel execution. The essential difference is that an asynchronous operation is concerned with which resources you consume while parallel execution is more concerned with how many.

The problem with GUIDs…

3 October 2014

GUIDs do solve an important problem. It’s just rarely the problem that developers are trying to address…

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.

Optimising bulk inserts with Entity Framework

26 June 2014

There are some techniques for improving the performance of bulk inserts in the entity framework, but the most optimal approach will always be to use a different library altogether.

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.

Hackable URIs may look nice, but they don’t have much to do with REST and HATEOAS

21 April 2014

Structured and Hackable URIs are a staple part of SEO-friendly websites. Although developers generically expect to see them in HTTP-based APIs, they should be irrelevant to consumers of a fully RESTful API that leverages HATEOAS.

Here's the truth about CMS selection: It doesn't really matter...

27 March 2014

A lot of hot air is wasted on CMS selection. Having lived through many implementations, it’s not the platform decision that determines whether or not you will be successful.

What role do architects have in agile development?

12 March 2014

Agile principals encourage self-organising teams to take ownership of solutions. This doesn’t leave architects out in the cold, but it does require a more engaged role based on influence rather than governance.

Lean development’s “last responsible moment” should address uncertainty, not justify procrastination

21 February 2014

Deferring decisions to the “last responsible moment” can help you to adapt to the inevitable uncertainty that comes with agile development. The risk is that it can become an excuse for uncertainty that undermines development velocity.

Can APX help in developing usable and accessible APIs?

19 October 2013

Given how important APIs have become in driving the reach of applications and services, it’s surprising how little investment is made in the usability of APIs as opposed to UIs. Perhaps the principals and techniques used by UX should be applied to developing more effective APIs…

Memory leaks in .Net applications. Yes - they happen all the time…

23 September 2013

The promise of garbage collection can lull .Net developers into a false sense of security. They are still vulnerable to memory leaks and have a responsibility to keep an eye on what’s going on under the hood.