What is YARP? YARP is a .NET library that implements HTTP proxy functionality and can be hosted in any .NET application, including ASP.NET services, Windows Services, Console Apps, and more. Compared to other proxies like HAProxy or nginx, which support both the Application layer (HTTP) and Transport layer (TCP), YARP supports only the Application layer, […]
De-Bouncer
What is De-Bouncer? De-Bouncer is a strategy to avoid excessive load on backend while maintaining User Interface responsiveness. The best way to explain how it works is to walk through a simple example. The Example Let’s look at a simple web application that shows a gallery of products to a user. Upon clicking on a […]
Growing new Talent
Why growing new talent is important Companies and businesses are built and run by people, none of the companies will exist without people who dedicate their time, effort and talent to start and later move the company forward. Therefore, it is vital for a company to invest in people to secure long term success. One […]
Kafka or RabbitMQ
Kafka or RabbitMQ? If you are looking for a concise yet complete answer on any of the following questions, this post aims to provide you enough information to decide: what is better Kafka or RabbitMQ; how Kafka and RabbitMQ are different; when should you choose one over the other.
Domain Driven Design Layers
When we think about Domain Driven Design, what things do come first in mind? Is it Entities, Value Types, Aggregate Root, or maybe it is Ubiquitous Language; or Repositories and Services? Well, today we are going to discover less known and often missed out concept of Domain Driven Design: its layers. Domain Driven Design layers […]
Builder Design Pattern
As stands from the name, Builder design pattern helps to instantiate objects where instantiation logic is somewhat complex, involves multiple steps or options before an object is ready to be used. Builder design pattern helps to reduce complexity by proving clean object instantiation interface guiding users through all available options. Additionally, Builder helps to improve […]
Automated testing slows me down, doesn’t it?
You might have heard arguments similar to this: “I don’t have time to write tests, I’m too busy implementing this feature”. Being an automated testing fan, how would you reply? Automated tests indeed take time to write and maintain, and that is an axiom. Luckily, the reality is not as simple, and the statement above […]
Singleton Design Pattern
Singleton is perceived as controversial design pattern, in some publications it is criticized and placed in a bucket along with antipatterns. Never less Singleton is used in variety of applications for a reason. Singleton helps to ensure a single instance of an object is created throughout application lifecycle. In this post we are going to […]
Factory Design Pattern
The idea behind factory design pattern is quite simple and it is to help instantiate objects when we require more than just a constructor call.
Event Sourcing and CQRS is not that hard
“Event Sourcing, CQRS? Sounds familiar, but what is it again?” If you are in the same state of mind and the above sounds just slightly familiar or not at all, this is the right post for you. Event Sourcing and CQRS are two patterns on its own that apparently play very nicely together. Let’s look […]