Microservices

22 April 2020

Do you really need Kubernetes?

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…?

8 February 2020

When is an event not an event?

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.

26 January 2020

Running serverless containers in AWS Fargate, Google Cloud Run and Azure

“Serverless” containers could help you to avoid the complexity of Kubernetes, but you may struggle to leverage them for anything beyond small, predictable workloads or batch jobs.

14 December 2019

When should you write your own message endpoint library?

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

6 October 2019

Splitting up shared databases

The problem of shared databases is not confined to monolithic systems. A big store of shared state is the guilty secret lurking in many a microservice architecture.

14 April 2019

Why is loose coupling between services so important?

You can’t eliminate coupling between collaborating services, but you can ensure that it doesn’t prevent you from enjoying the benefits of service-based development.

8 March 2019

Sharing microservices across large organisations

Sharing microservices across organisational boundaries is much harder than it looks. There are technical, operational, organisational and financial issues that need to be considered if you want to be successful.

9 February 2019

Now that Kubernetes is on Azure, what is Service Fabric for?

There does seem to be growing confusion over what Service Fabric is really for. Is it an orchestrator for microservices? A means of lifting and shifting legacy applications into the cloud? An application development framework?

6 January 2019

Finding service boundaries: more than just the bounded context

When you are identifying service boundaries, it’s not enough to consider the domain model alone. There are other, more pragmatic concerns to bear in mind.

12 October 2018

Messaging anti-patterns in event-driven architecture

Event-driven integration can improve the scalability, resilience and scalability of distributed applications… but this does depend on the design of your event messages…

21 September 2018

Implementing a Docker HEALTHCHECK using ASP.Net Core 2.2

Starting with version 2.2, ASP.Net Core will make it easier to implement monitoring endpoints that can be used by a Docker HEALTHCHECK command.

12 September 2018

Hosting .Net Core containers in Service Fabric

Service Fabric does support container-based applications, but it still feels more like an application server than a container orchestrator.

12 August 2018

Building Twelve Factor Apps with .Net Core

Twelve factor apps provide a methodology for building apps that are optimised for modern cloud environments. It’s only been achievable in the Microsoft world since the advent of .Net Core.

3 June 2018

Layers, onions, hexagons and the folly of application-wide abstractions

Not only are layered applications difficult to maintain, but the common abstractions they are built on tend to give rise to inflexible implementations that have serious scalability challenges.

8 May 2018

How to decompose that monolith into microservices. Gently does it…

You’re rarely given the opportunity to focus on transitioning an architecture to the exclusion of everything else. You may have to get used to the idea that decomposing a monolith is a direction of travel rather than a clear destination.