There are problems in the software industry that have been solved a hundred-thousand times, and will be solved a hundred-thousand more. Rather than re-inventing solutions to these common problems we should be engaging in a discussion about meta-development practices instead.
What is Event Sourcing?
This post attempts to explain event sourcing through examples showing what it is and what it is not, while highlighting some of the strengths and reasons for using it.
How code quality positively impacts the accuracy of estimates
Using focal points to describe code behaviour
Looking at code through the "focal points" of the component might clarify a mismatch between the expected behaviour and that what is actually implemented. Organizing code accordingly to these focal points might provide a huge cognitive benefit to maintainers.
More transparent command to event transformation
An improvement upon the previously proposed event sourced aggregate where command provides type information about its returned domain events.
Creating event sourced aggregates with C#
The aggregate is a well understood concept within DDD practices. The addition of event sourcing to the mix might however complicate things, and the once pretty domain is now in shambles. In this post I'll cover the addition of ES, while keeping the awesomeness of DDD in place.
Expose a secret as file in Traefik via Helm to configure ACME DNS
Rolling back migrations to a previous version of Entity Framework Core
I discovered there was a dependency incompatibility between EF Core 5 and SqlKata. I weighted my options, and decided it would be easier to revert back to EF Core 3, than to solve this dependency compatibility issue in another way.
How to add build information to a dockerized React app? (Docker Hub)
Hiding React component props within a shadow state
GraphQL.NET: Runtime object type is not a possible type for interface
Implementing pagination with GraphQL.NET and Relay
I describe the implementation of a cursor based GraphQL API following the Relay specification. Everything is covered, the specification, query composition, and even a real-world sample.
How to create GraphQL data loaders for Entity Framework?
How to move data from MSSQL to ElasticSearch at galactic speeds
How to effectively observe the runtime behaviour of your core domain
Logging statements have no place in the domain. There are multiple better alternatives you should use instead!
The importance of time and coherence in event sourced systems
To make a system more maintainable its temporal characteristics should mimic the way humans perceive the passing of time. Coherence should bind the past and the future through the present, whereas continuity should explain the present by the past.
Interaction with and integration of software domains
A software domain has the privilege to live in total isolation from any other component in the codebase, though it must be consumed by other components. By generalizing the interaction pattern to the domain one can greatly simplify these integration points.
Coarse commands emitting granular events
In order to allow an event sourced software system to evolve I believe it to be important to issue coarse commands emitting granular events. In this post I explain why.
Similar string search with the Levenshtein distance on SQL Server
Recently I have been looking for more flexible ways to search through text within a SQL database, and I stumbled upon a suggestion which indicated to use the so called Levenshtein distance.
Asynchronous streams in C# and scrolling through ElasticSearch with NEST
How can I use cursor based pagination on SQL Server with C#?
How to add JWT Bearer auth to GraphQL subscriptions on ASP.NET Core 2.1?
Scaffolding an existing SQL database with Entity Framework Core in 5 minutes
If you'd like I'll drop new content straight into your mailbox. No need to keep hitting refresh on my site.Ps. feel free to hit reply on any mail you receive from me!
How complex software impacts your cognitive abilities
My presentation on DDD Europe 2022.
Domain integration of external interactions
More often than not a software domain is required to deal with external components and service these must integrate with. Here are some considerations around these integration tasks.
What makes an event sourced domain?
In an effort to generalize event sourcing to the whole domain I try to adapt concepts previously developed for aggregates to other domain objects such as services, process managers, sagas and repositories.
Can I map one command to multiple events?
Since it would be beneficial for commands to be able to issue multiple events reflecting its behaviour I modified an earlier approach to event sourced aggregates to allow this use-case.
How to set up Traefik on Kubernetes?
Recently I started playing around with Traefik on Kubernetes and wanted to request wildcard LetsEncrypt certificates.
React forms on steroids
If there is one thing I hate about web development it is creating input forms. In this post I'm about to explore some techniques to make form creation using React somewhat easier.
Accessing the filesystem with an asp.net core app run on Docker
I ran a bunch of experiments to figure out how to access the filesystem from a .NET app running on Docker.
An algorithm for interpolating or extrapolating two lists
Having my brain eat itself while trying to interpolate two data sets to one another I came up with this working, though overly complicated solution. It works, but can be implemented in a much less convoluted mess.
Representing coordinates in a human readable way
In an attempt to make coordinates legible without resorting to maps I have tried an approach where I describe the position relative to a know point, such as a city, mountain top, or other landmark.