October 2nd, 2016
Large scale rewrites of systems are loaded with risk. You can address this by preparing the ground in advance and adopting an incremental approach, but a willingness to be pragmatic is essential.
July 29th, 2016
Event sourcing can scale very nicely, though this does depend on a number of key design decisions for the underlying event store.
June 2nd, 2016
Serverless computing makes bold promises of development without having to worry about environments, scaling or deployment. Haven’t we been here before?
April 14th, 2016
In most cases “business logic” just refers to the poorly-defined “gloop” that sits between user interfaces and databases in layered architectures.
March 23rd, 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.
July 25th, 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.
May 25th, 2015
Comparing microservices with monoliths is a false dichotomy. There are many ways of designing a system to provide greater resilience, easier scaling and flexibility of implementation.
March 9th, 2015
We know that micro services are small and focused by design – just how small is this in practice?
February 8th, 2015
Google’s open source serialization format is an efficient way of passing platform-independent and version-tolerant data between end-points. Two very different implementations have emerged for .Net.
November 3rd, 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.
September 9th, 2014
CQRS is based on the simple notion that you use a different model to update information than the one to read it. This does not necessarily have to give rise to the same solution every time.
July 9th, 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.
June 12th, 2014
There’s nothing really new about many of the ideas that underpin microservices. Are they just an agile re-branding of SOA?
May 4th, 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.
January 13th, 2014
Every system has some level of coupling. After all, systems need to collaborate and in doing so they will inevitably share some characteristics of language and behaviour. It’s important to recognise where coupling occurs and the impact it has on stability and flexibility.