Architecture

How can Domain Driven Design help with large scale agile development?

20 September 2017

Agile teams spend time modelling software whether they are prepared to admit it or not. Adopting a technique like Domain Driven Design can help to make this more efficient, particularly at scale.

Can consumer-driven contracts manage breaking change in microservice integrations?

4 June 2017

One of the more enduring problems with service integration is managing change in service interfaces. Consumer-driven contracts can help to detect breaking changes, but this visibility comes at a price.

API management and the return of the enterprise service bus

16 May 2017

No self-respecting integration platform is complete without an API management story these days. Is this just a RESTful return of the enterprise service bus?

Architectural governance can be used to foster innovation. No, really.

3 April 2017

Governance doesn’t have to be all about byzantine process and suffocating approval boards. It can be used to provide clear permission for teams to innovate.

Why agile software architects should write code

28 January 2017

No architect will ever admit to being out of touch with software development. However, unless you are writing code then it’s difficult to avoid becoming an ivory tower or PowerPoint architect that can only discuss systems in the abstract.

Event stores and event sourcing: some practical disadvantages and problems

7 January 2017

Event stores and event sourcing are a powerful idea, but they can be vulnerable to a number of technical and operational challenges when faced with real world complexity.

Designing an event store for scalable event sourcing

29 July 2016

Event sourcing can scale very nicely, though this does depend on a number of key design decisions for the underlying event store.

Should microservices share technologies and platform capabilities?

28 June 2016

Should agile teams be encouraged to share capabilities or be given total autonomy over their technology choices? For larger organisations this can become a trade-off between economies of scale and speed of delivery.

Is “Serverless” architecture just a finely-grained rebranding of PaaS?

2 June 2016

Serverless computing makes bold promises of development without having to worry about environments, scaling or deployment. Haven’t we been here before?

What do we actually mean when we say business logic?

14 April 2016

In most cases “business logic” just refers to the poorly-defined “gloop” that sits between user interfaces and databases in layered architectures.

API gateways and the dangers of creeping middleware scope

23 March 2016

An API gateway can solve many generic problems in an API infrastructure, but you do need to define a clear remit and protect against creeping scope.

Data design for event-driven architecture: autonomy, encapsulation and ordering

1 February 2016

When you’re implementing an event-driven architecture, the design of your events is absolutely critical to realize the benefits of loose coupling.

Comparing nServiceBus and MassTransit: Do we still need .Net integration frameworks?

26 November 2015

Both nServiceBus and Mass Transit plugged an important gap in Microsoft’s integration landscape, but do they have a role in a future that is likely to be dominated by diverse technologies and autonomous agile teams?

Most software architecture diagrams are useless

11 August 2015

The best architecture diagrams act as a map - if an architect can’t express a system clearly and concisely then they probably don’t understand it properly.

Can cross-cutting concerns really exist between services?

25 July 2015

You might be able to identify cross-cutting concerns in a monolith, but in a service-orientated world they should melt away into specific implementations.