Ronin – Key Vault

The first thing I am going to do is setup a standard way to work with and store the solutions primary secrets and cryptographic materials. I find that as a developer I am called on to decide or at least make recommendations on how to handle implementations of protocols, tools and technologies that need access…


Ronin Building Blocks – Network Template

I am a strong believer in building security into the solution from the ground up in general but when it comes to IoT it is pretty much mandatory. There seems to be a consistent stream of exploits and attacks on connected devices so to properly defend my solution against this I will start any deployment…


Ronin Building Blocks – Logging

Working with large scale distributed systems can be a challenge for the operations team whether it is handling capacity demands, scaling for cost, applying updates, rolling out new versions or keeping it safe and secure. Over the last two decades I have seen an ever-increasing demand for availability and uptime with an cyber attacks and…


Ronin Building Blocks – Dependency Injection

As much as I enjoy coding I must constantly decide whether there is more value in writing a custom piece of code or taking one off the shelf that is supported and has had more eyes on it. A great example of this can be seen in the next few building blocks starting with this…


Ronin Building Blocks – Resource Pools

In Azure, just as most other shared resource situations, there are policies put in place to govern fairness of use (most limits can be found here). These limits are the best friend of solutions that do not over consume, protecting them from abusers etc., but must be handled appropriately by solutions that push up against them. Take…


Ronin Building Blocks – Precision Time

Have you ever been working on debugging or diagnosing an issue and you need to get the time it takes to execute an external service call? I personally don’t want to use a stop watch, although it is a viable solution, when I already have the start time (DateTime.UtcNow) that I wrote to my logs, I just want…


Ronin Building Blocks – Circuit Breaker

I finished my retries building block, that should be good for basic handling of transient error conditions. When retries are used during throttling related to excessive load it creates the undesired side effect of increasing the load during the future retry attempt. This can result in prolonged throttling and in some cases unrecoverable situations. This sounds like a no…


Starting with Building Blocks to Save on Duct Tape

It would be easy to follow my urge to jump right in and begin coding the fun and interesting pieces of the solution but that will just lead to a bailing wire and duct tape type solution. To avoid the support and security issues that typically plague that approach over time we will build out…


Building an IoT Solution

Over the past two decades I have worked with a wide range of teams in a variety of industries building highly available, large scale systems and the experiences seem to be relatively consistent across them. The teams that act based on strong academic concepts understand the nature of a highly distributed and highly available system…