There are many posts and articles that expound the virtues of paying back the tech debt and philosophise at great lengths about the various design patterns that can improve the design of the code. In this post I’d like to tackle the more pragmatic and real life aspects around tech debt from my perspective.

Recently a planned AWS Aurora database failover/master reboot caused database connection failures in one of our services which caused me to delve deeper into how MySql driver manages connections under the hood.

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.

…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”.

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 from my MVC controller action: This can be ok to a certain extent as long as the application is simple enough and you only intend […]

Seeing as micro-service architectures are all the rage these days, I decided to dip into it by building…

In this post I will show one way to mix JWT Token authentication with cookie authentication using ASP.NET Core and send out the JWT in a response cookie.

In a multi-tenant environment the application database is usually partitioned by tenants. This is done to achieve isolation and scalability. The problem of course is how do you route tenant requests to the correct databases?

In part 2, I talked about my domain modeling thought process so this post is about trying to persist those objects for long term storage. Although the avenue for different data storage provider is always open with the kind of design I will talk about here, my default data store tends to be SQL Server […]

In part 4, I detailed the way I went about creating application services for my expense tracking application. In this final post, I will talk about the ASP.NET Core MVC application that I built with HTML5/Razor front end views on top of the application services. Remember the application services consumption model sketch from the last […]