SmartEnum for better domain modelling
An enum is a simple value that has no logic on it’s own. It is usually used to note a type of something. However, because they can not contain any logic, we end up poluting our domain with many if-else…
An enum is a simple value that has no logic on it’s own. It is usually used to note a type of something. However, because they can not contain any logic, we end up poluting our domain with many if-else…
In many companies, a requirement is that developers work 5 days a week on the product, and to implement features that Product Manager says they need to be implemented.This approach leads to lower satisfaction and higher turnover. People want to…
When writing a simple query, we often check if there’s an index for all the fields we filter on. The query performs well in both local and production environments, and we don’t think twice about it. However, certain conditions can…
The solution so far managed to queue 837,000 messages, and 449,274 of them were processed. Both, the producer and the consumers did not manage to handle the 1 million we need. The previous blog post ended with a list of…
In the previous part, a multi-threaded solution was created, that does not scale. Partitioning was used to split the data into smaller data sets each thread would process. The next milestone is to create a scalable solution.When talking about scalability,…
In the previous part, we created a simple, single-threaded solution that does not scale. The CPU utilization was around 1%. We can improve this by creating multiple threads until the CPU hits the 100% mark. Note that does not mean…
A reader reached out and asked for advice on how to create a notification service. In this series of posts, I will try to answer the question, but also the reasoning behind different approaches. We start from a simple approach,…
Developers work with complex systems. Each of those systems is complex on its own, and the interactions between them can become complex as well. One way to deal with the complexity is to abstract those systems. We don’t need to…
An interesting question popped up in my inbox: Are there any competitive advantages on using functional programming or programming style over usual programming in .NET API Programming? Advantages in terms of performance and optimisation. There are two distinct questions here.…
Locking – What is it, how and when to use it? The answer is: Hopefully, you dont. Quite an artist, right? The nature of locks is to limit concurrency in software. Meaning, we are introducing waiting time, where the CPU…