I've been coding since 1982, when my dad bought a 1K ZX81. I've been paid to code since 1991, journeying from mainframe development, through PC development, and
In the previous post in this series on creating a serverless webhook proxy, I looked at connecting to Azure Blob Storage without connection strings. Now that we have the webhook payloads validated and stored, it is time to look at processing them. So...
In the previous parts in this series, I discovered the OpenAPI package, used it to verify REST API payloads, and then used it to create a class that can use an OpenAPI specification to become a dynamic API client. At the end of the last part, I compa...
In my previous post, I discovered the Microsoft.OpenApi packages and used them to extract JSON schemas from an Open API document. At the end of that post, I pondered if it would be possible to build on my experience to create a client that could be u...
Recently, I needed to integrate an internal system that generates JSON with a third-party API. Usefully, I had an OpenAPI specification for the API in question. OpenAPI is a specification for machine-readable interface files for describing, producing...
In the previous post in this series on creating a serverless webhook proxy, I used Azurite (local Blob Storage emulator) to develop the code that stores the requests received. This was very convenient, but avoided a number of concerns that we encount...
In the previous post in this series on creating a webhook proxy using Azure serverless technology, I added API Management in front of an Azure Function. In this post, I turn my attention to fleshing out the back-end functionality. In particular, impl...
This is the third post in my series where I explore the world of serverless Azure. I am doing this by building a webhook proxy application using only the serverless Azure services. In the first two posts, I built and deployed an Azure function that r...
In this series, I am learning by doing and documenting my experience on the way. I am aiming to build a serverless webhook proxy, to provide a resilient interface for downstream systems. In the first part, I used the local development tools to build ...
Recently, my focus at work has shifted from AWS development to Azure development. To help myself get properly acquainted with the technology, I have decided to set myself a Azure-based serverless challenge. That is, to build a multi-tenant webhook pr...
In this post, I share my experience of learning how to use ChatGPT to assist me develop a tool to assist me in solving a real world problem. A problem in a domain where I have limited knowledge. Every February, under the guise of Andy Balham, I take ...
In this post, we shall see the consequences and limitations of using step function errors as flow control. See the accompanying GitHub repo for working code examples. TL;DR Be wary when using step functions errors for flow control in step functions ...
40 years ago I saw someone try to program with natural language. Now that has become a reality with large language models (LLMs) and SudoLang. My first question was, can we use these tools to generate comedy gold? 40 years ago It was 1982 and I was a...
In this post I continue my adventures with X-Ray and try my hand at observing a whole application. In the previous posts in the series, I looked at using X-Ray in a small context. Here we will see what happens when an end-to-end process is traced and...
In the first part of this series, I added AWS X-Ray to a set of examples for my CDK Cloud Test Kit. In this part, I look at adding it to an example application that I put together for my series on implementing Enterprise Integration patterns. Let's s...
One of the big challenges of distributed systems, such as serverless, is observability. In previous posts, I had a look at structured logging, metrics, and alarms. All these play an important part in building a maintainable system. One thing that I h...
From my earliest experience with object-oriented programming, I learnt that one of the biggest benefits of the paradigm was the concept of encapsulation. Lately, my experience with developing in JavaScript and creating libraries have led me to come t...
In this series, we continue looking at upgrading a TypeScript codebase from AWS SDK V2 to AWS SDK V3. Here we concentrate on DynamoDB and also look at S3, Step Functions, and Lambda functions. DynamoDB clients As we saw in the first part of this seri...
With the announcement of the Node.js 18.x runtime being available in AWS Lambda, AWS also changed the included version of the AWS SDK for JavaScript. Up until Node.js 16, Lambda’s Node.js runtimes have included the AWS SDK for JavaScript version 2. ...
For the majority of my journey in software development, I have used languages that have supported method overloading. I have found this to be useful, so I have been wondering how to implement something similar in TypeScript. How can we have a method ...
In the first two parts in this series, we first looked at choosing a messaging technology and then looked at how we can design the domain events that flow through the application. In this part, we will look at how we can use those domain events to im...