AI Enlightening Moment

Up to this point I have only used AI to generate code snippets, either via Gemini web or the Codeium extension on VS Code/Rider. Recently, I decided to give Trae AI IDE a try and as I was updating my portfolio site at esausilva.dev, a brilliant idea sparked and found a use-case to fully utilize the power of AI. That is when I had my AHA moment, my AI enlightening moment.

Continue reading

Implementing Idempotency in .NET Core

Implementing idempotency in .NET Core can be accomplished with a filter, which I will cover at a high level.

Putting it simply, idempotency is the concept of executing an operation multiple times and getting the same result back, given the same input parameters for each request. In our case, we will be setting up idempotency for an API endpoint.

Continue reading

Unintended Side Effects with .NET Core Service Lifetimes and Dependency Injection (DI)

We have an API that handles ~45k monthly requests that was, at times, responding strangely. I suspected it was related to the .NET Core service lifetimes.

The symptoms in question were that out of the blue, the API response body had a status code of 409 with a message of invalid user-provided values, however, the actual HTTP response status code was 200.

Continue reading

.NET Global Exception Handler to Return Problem Details For Your APIs

This article will focus on handling custom exceptions for flow control on .NET with a global exception handler and return a problem details object.

Having said that. There are, for the most part, two schools of thought. One where it is OK to throw a (custom) exception to control flow. i.e. Throw a UserNotFoundException when a user is not found. The second is implementing the Result Pattern where you return a Success or an Error to control the flow. i.e. Result.UserNotFound.

Continue reading