Recent Posts

Biting the Bullet – Testing Microservices in Production with Tracer Bullet Tests

Tracer Bullet Testing or Synthetic Transactions or Synthetic Monitoring is a way of testing your service/app in production where its supposed to run but without affecting users/clients/external systems.

Building an Event Driven Architecture – Lessons Learned

In this somewhat of a long post, I will go over some of the lessons I and my team learned while building an event driven architecture at work, why did we build it, recommendations and watch-outs for anyone else thinking of doing the same. This is more of a field report from a real life environment so there is a generous helping of pragmatism around architecture and careful and deliberate avoidance of dogma and purism.

Reporting Model Validation Errors in ASP.NET Core 2.0

Couple of days ago, we had an outage in one of our production APIs that’s built with ASP.NET Core 2.0 and all we got to see in all our logging … Continue reading Reporting Model Validation Errors in ASP.NET Core 2.0

Building CI/CD Pipeline with AzureDevOps, Octopus and Cake Scripting

In this post I will show how I recently set-up a multi-environment (Testing, Acceptance and Production) CI/CD pipeline to build my application in Azure DevOps but deploy to Azure AppService using Octopus with all the steps scripted using Cake.

Monitoring Health of Azure App Service Applications using Azure Functions

Monitoring the health of your application in production is a crucial aspect of software development because at any given point in time, you want to be reasonably certain about how your business critical application is performing and you want to be alerted to any problems that might be brewing up in the application before your customers do.

Implementing Hexagonal Ports and Adapters Architectural Style

Many articles talk about the what of this style but in my view, not enough talk about the how. In this post, I am going to try and show one way to actually structure the solution to be more in line with the hexagonal ports and adapters style.

Continuous Deployment of Azure WebJobs using Cake Script

This is the continuation of the previous article where I implemented the Pipes and Filters integration pattern but left out the continuous deployment aspect of it.

Implementing Pipes & Filters Architectural Style With Azure WebJobs

…the whole business process can be divided into smaller asynchronous sub-processes with each one feeding i.e. “piping” its output into the input of the subsequent process(es). At each stage some processing is done for e.g. data enriching, filtering etc and this processing generically is termed as a “filter”.

Reflections on Techorama Belgium Developer Conference

I attended my first ever developer conference (Techorama) in Belgium this past week (May 23-May 24, 2018) and it has to be said, it was much more exciting than I thought it would be…

Implementing Strangler Pattern using IIS & URL Rewriting for Legacy Systems Migration

Strangler pattern is a way of migrating from legacy applications to new ones with both being operational at the same time and the upgrade happening behind the scenes gradually.

Using DispatchProxy for Centralised Structured Logging in ASP.NET Core

The way logging and instrumentation in code has traditionally been done is something like the below, say, I want to profile my application service method called “PeriodCloseReportAsync()” that gets called … Continue reading Using DispatchProxy for Centralised Structured Logging in ASP.NET Core