Offset vs. Keyset Pagination: How to Efficiently Process Millions of Database Records


Imagine that you need to read 10 million records from a database and perform some processing on them. Naturally, the first approach that comes to mind is to read the data in pages, using a specific ordering, process each page, and then move on to the next one. However, as you read more and more reco ....
Read more

Preventing Cache Stampede in High-Traffic APIs with Double-Checked Locking


As the number of users of your website grows and more requests are sent to your server, the first component that comes under pressure is usually the database. To reduce the load, applications commonly introduce a caching layer in front of the database. ....
Read more

Implementing Multi-Tenancy with EF Core in ASP.NET Core


In this article, we will implement a Multi-Tenant project. In one of our projects, there was a need to implement the system as Multi-Tenant so that the system could be run for multiple customers. Many projects can be run for multiple customers, but the problem is that separate servers, databases, e ....
Read more

Never send requests directly to Kestrel


A few days ago, I was tasked with writing an application that would send several requests to an API. It was a ConsoleApp and wasn’t overly complicated. I wrote the application, tested it on my system, and it worked fine. Then, they said the requests ....
Read more

Receive data from Masstransit Consumer


If you've worked with the Masstransit library, you’ve likely used its Send or Publish methods. In this approach, you send data and register a Consumer so that when data is sent, the Consumer receives it and performs the necessary processing ....
Read more