Microservices
20 March 2018
GraphQL will not solve your API design problems
If you find REST APIs difficult to design, develop and scale, then your experience with GraphQL is not going to be any easier.
9 March 2018
Microservice preconditions: what needs to be in place before you decompose that monolith...
One of the main benefits of microservices is that they reduce the cost of change. The problem is that you need to make a significant up-front investment to realise this saving. Your first few microservices are more likely to be an expensive and potentially painful undertaking.
13 December 2017
Entity services: when microservices are worse than monoliths
Finely-grained, entity-based services seem to be advocated by some pretty authoritative sources. This is unfortunate as they are something of an anti-pattern that can undermine many of the benefits of decomposing an monolith into micoservices.
3 December 2017
Automating Docker image deployments using Azure Container Instances
Azure’s Container Instances provides an easy and quick way to run Docker images without having to learn the various complexities of orchestration platforms such as Kubernetes.
4 November 2017
Events, sagas and workflows: managing long-running processes between services
An event-driven architecture can give rise to complex chains of events that are difficult to manage. These problems can be mitigated through careful design rather than resorting to shared state databases or workflow engines.
3 October 2017
Managing and throttling serverless scaling with Azure Functions
The serverless promise of unlimited scale-out can be a curse when your downstream processes and data stores have strict limits on throughput. With Azure Functions your options for mitigating this are limited, though the new durable functions may provide an answer…
14 August 2017
Swagger is not WSDL for REST. It’s much less useful than that…
Swagger enables the same kind of automated discovery and integration that WSDL was invented to support. In doing so it undermines the design of REST APIs and doesn’t even provide adequate documentation.
5 July 2017
Writing unit tests for Azure Functions using C#
You can now write compiled Azure functions in C# with full unit test coverage, though there are a few obstacles along the way.
4 June 2017
Can consumer-driven contracts manage breaking change in microservice integrations?
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.
26 May 2017
Comparing serverless C# and .Net development using Azure Functions and AWS Lambda
Recently released toolsets for AWS Lambda and Azure Functions are finally making serverless application development available to C# developers.
16 May 2017
API management and the return of the enterprise service bus
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?
12 April 2017
Using Docker to build and deploy .Net Core console applications
Using Docker with .Net Core is initially straightforward, but to get beyond basic image building you will need to handle more than the simple scenarios demonstrated in quick-start guides.
13 November 2016
Handling Protocol Buffers backwards compatibility between versions 2 and 3 using C#
You will inevitably be pushed towards upgrading your protocol buffer messages to Proto3, particularly if you want a client that supports .Net Standard that .Net Core. This can be done, but there are a couple of speed bumps along the way.
3 October 2016
What’s so bad about monoliths anyway…?!
Don’t get me wrong - I am an advocate of decomposing functionality into autonomous services. My reservation is that you need to have a lot of prerequisites in place before you can start leveraging microservices.
12 July 2016
Simplifying .Net REST API development: Nancy, self-hosting and ASP.Net Core
REST API development using ASP.Net WebAPI is so fussy compared to other ecosystems such as Node.js and Ruby. New frameworks are emerging that promise to simplify both development and hosting of APIs in the .Net world.