[Video] Outbox meets change data capture (feat. .NET, PostgreSQL, Kafka and Debezium)

Quick video with an interesting approach to implement the publisher part of the outbox pattern. Using change data capture (often referred to as CDC), we hook up something to the database transaction log, forwarding incoming entries to the outbox table. In this example, we’ll make use of Debezium, hooked up into a PostgreSQL database, forwarding messages to Kafka.

January 17, 2022 · 1 min · 89 words · João Antunes

Getting a complex type as a simple type from the query string in a ASP.NET Core API controller

This is a tale of a good amount of hours of wasted time, so I’m going to document it so I remember it in the future. The idea is simple: when building an API, how can we treat a complex type as a simple type, to avoid things like primitive obsession, implement strongly typed ids and other related patterns? Let’s find out! 🙂

January 3, 2022 · 8 min · 1589 words · João Antunes

[Video] Checking out NDepend

Let’s take a look at something that’s been around for years, but maybe flew under the radar: NDepend, a static code analysis tool tailored for .NET.

December 6, 2021 · 1 min · 80 words · João Antunes

[Video] High-performance and compile-time logging source generation in .NET 6

Quick little video about an interesting new logging related feature coming in .NET 6, compile-time logging source generation, as well as related high-performance logging features, which were already present but probably not very well known.

November 21, 2021 · 1 min · 72 words · João Antunes

[Video] Exploring distributed tracing with ASP NET Core 6

Distributed tracing isn’t a new subject by any means, but there are some more recent developments, namely in terms of standards like W3C Trace Context and OpenTelemetry, that are worth a look.

October 26, 2021 · 1 min · 108 words · João Antunes

[Video] Are ASP.NET Core Minimal APIs just for demos?

The upcoming release of ASP.NET Core 6 brings a pretty interesting feature set referred to as “Minimal APIs”. While they seem pretty interesting to me and many others, some folks are not fans and can be quite vocal about it, so I thought about taking quick look, put things in perspective, as well as compare with other tech stacks.

August 17, 2021 · 2 min · 251 words · João Antunes

Next level console apps with Spectre.Console

Don’t know about you, but when I build console applications, pretty is not a word I use to describe them. Let’s see how Spectre.Console can help us with that!

July 27, 2021 · 9 min · 1917 words · João Antunes

Mistaking software for a finished product

As much as it would be simpler, software isn’t something we can ship and forget about, or even just keep adding features without revisiting architecture and design.

May 10, 2021 · 6 min · 1078 words · João Antunes

Virtual as a code smell*

Lately I noticed I’m essentially treating virtual methods as a code smell, so thought it could result in an interesting blog post.

April 7, 2021 · 5 min · 1040 words · João Antunes

Setting up demos in Azure - Part 2: GitHub Actions

Building on the work from the previous post, in this one we make use of GitHub Actions to setup workflows for easy setup and tear down of a demo environment in Azure.

March 14, 2021 · 8 min · 1535 words · João Antunes