May 24th, 2019

Architecture patterns to support incremental change

People tend to see architectural change as a big transactional effort, so if any mistakes are made they tend to be huge mistakes. It is better to focus on delivering smaller changes that can demonstrate incremental value.

April 21st, 2019

Optimizing Performance of the Azure Service Bus .Net Standard SDK

Microsoft have published advice for maximising performance with Azure Service Bus, but there doesn’t appear to be any explicit advice for optimising the newer .Net Standard based SDK.

April 14th, 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.

March 23rd, 2019

Why SAFe can be agile kryptonite

The problem with SAFe is that you can implement it without writing a single unit test or automating a single build…

March 8th, 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.

February 24th, 2019

Should teams choose their own languages and tools?

Standardisation does have a place, but it should be reserved for infrastructure and collaboration rather than languages and tools.

February 9th, 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?

January 6th, 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.

December 18th, 2018

Custom token authentication in Azure Functions using bindings

Azure Functions only provides direct support for a narrow range of authentication providers. If you want to use an external token provider or custom solution, you’ll have to create the plumbing yourself.

November 27th, 2018

Writing ArchUnit style tests for .Net and C# to enforce architecture rules

ArchUnit is a java library that provides a fluent API for creating self-testing architectures via unit tests. A similar library can be written for .Net Standard that acts on compiled assemblies rather than raw code.

October 28th, 2018

Why isn’t WCF supported in .Net Core?

Development shops that have invested heavily in WCF have been left high and dry by the emerging .Net Core ecosystem. There are a number of good reasons why WCF for .Net Core is unlikely to make it onto any official roadmaps…

October 12th, 2018

Message design anti-patterns for 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…

September 21st, 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.

September 12th, 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.

August 30th, 2018

How I learned to love the “Agile Industrial Complex”

There is a growing sense of unease around how larger organisations have implemented agile. In particular, there is a tendency towards centralised control that can be at odds with the agile preference for individuals over process.