Design patterns

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.

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…

Managing change and version control for service interfaces

16 July 2013

Change is an inevitable and even desirable part of distributed development. Managing the impact of that change is the difficult part, particularly when change affects the service interfaces that bind a distributed platform together.

Netflix has abandoned OData – does the standard have a future without an ecosystem?

17 June 2013

Netflix have closed their OData catalogue and EBay seem to have quietly put their implementation out to grass. With a shrinking ecosystem and no marquee services, does Microsoft’s data standard have a future?

The generic repository is just a lazy anti-pattern

21 May 2013

A generic repository is often used with the entity framework to speed up the process of creating a data layer. In most cases this is a generalization too far and it can be a trap for lazy developers.

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.

REST services may not have standards, but they should follow conventions

17 December 2012

REST is more of an architectural style than a set of standards. That said, a service should follow certain conventions if it is to be predictable and simple to work with.

Are CRUD methods what we really want from a repository?

6 November 2012

CRUD-based repositories may appear convenient but they can make for poor service interfaces as well as giving rise to a lot of unnecessary boiler-plate code.

How not to use dependency injection: service locators and injection mania.

2 July 2012

Development teams can struggle with dependency injection, often because they don’t have a clear understanding of how best to use it.