Architecture

How should architects collaborate with development teams?

6 February 2022

If we’re serious about empowering engineering teams to make decisions, then we should be embedding architectural skills rather than architects themselves.

Data meshes and microservices - the similarities are uncanny

10 January 2022

The data mesh is doing for data warehousing what microservices did for solution architecture…

Orchestration vs choreography for microservice workflows

5 December 2021

Orchestration and choreography can complement each other. There doesn’t have to be an exclusive choice between two opposing styles.

How not to run a technology selection process

28 October 2021

Having experienced technology selections as vendor, consultant, and customer, I have seen how some common mistakes can undermine clear decision making.

Writing architectural design principles that scale decision making

13 June 2021

A good set of architectural principles can help to scale development by laying down some basic guidelines for decision making.

Data Vault 2.0: the good, the bad and the downright confusing

12 December 2020

Data Vault 2.0 modelling can support a more agile approach to data warehouse design and data ingestion. Inevitably, this flexibility does come with a heavy burden of complexity.

Building your own in-house technology radar

20 November 2020

A technology radar can be a great technique for initiating conversations about technology, but there are some challenges in applying it to in-house development shops.

Architecture without documentation is incomplete

17 October 2020

Designing good architecture is only half the battle. You also need to be able to communicate your architecture to anybody who is likely to use it.

“Goldilocks” governance and agile architecture: balancing team autonomy and alignment

24 August 2020

There can be a tension between the lean, experimental nature of agile development and the more deliberate, planned demands of a large organisation. It does not have to be like this.

What we talk about when we talk about “legacy” systems

22 July 2020

“Legacy” is often used a pejorative term to describe any long-lived code base that a development team finds distasteful to work with. What do we really mean by “legacy” and how should we be dealing with it?

Naming things is easy. Abstraction is much harder.

13 June 2020

One of the more pervasive myths in software development is that naming things is hard.

Do you really need Kubernetes?

22 April 2020

If you are working with a lot of twelve-factor services then probably, yes. That said, you may get a creeping feeling that Kubernetes was designed to solve problems at a scale that most people never reach…?

If “Enterprise Architecture” is failing, what should architects be doing instead?

11 March 2020

The discipline of architecture is an important part of any efficient engineering organisation. It just needs to adapt its game from the process-orientated “Enterprise Architecture” of old to something more collaborative and relevant.

When is an event not an event?

8 February 2020

Message design in an event-driven architecture can be quite nuanced, especially if you want to achieve any of the benefits of loose coupling that they can be associated with.

When should you write your own message endpoint library?

14 December 2019

Enterprise messaging patterns are complex beasts that often warrant a common implementation across your endpoints. Should you ever be tempted to roll your own?