EvilCode #14 : Can you instantiate an interface using new operator ?

In C#, can an interface or abstract class be instantiated using the "new" operator ? This probably is one the oldest questions one might have heard as a programmer. And the most obvious answer is a big NO. Well, at this point, I would say it is partially INCORRECT. Why and How The answer "Yes" is perfect … Continue reading EvilCode #14 : Can you instantiate an interface using new operator ?

Circuit Breaker

The previous two blog entries were dedicated to illustrating how to use Ocelot and Polly for building Circuit Breaker. But what exactly is a circuit breaker? Let us dive into a bit of detail on the same. If one was to observe microservices or any service-oriented architectures, it would not be hard to say that … Continue reading Circuit Breaker

Circuit Breaker with Ocelot & Polly – Part 2

In the previous blog post on Circuit Breaker with Ocelot And Polly, we saw how we could use the Ocelot library's inbuilt support for Polly to build Circuit breakers for handling timeout errors from the downstream services. In this blog post, we will address, how we could trigger a circuit breaker when the downstream service returns … Continue reading Circuit Breaker with Ocelot & Polly – Part 2

Circuit Breaker with Ocelot & Polly – Part 1

One of the key features of Microservices is the resilience to failures. In this blog post, we will aim to implement Circuit Breaker Pattern in our API Gateway. We would be using the Quality of Service (QoS) functionality exposed by Ocelot. Internally, Ocelot uses Polly library to implement Circuit Breaker. Timeout Failures from Downstream services As the first step, … Continue reading Circuit Breaker with Ocelot & Polly – Part 1

Handling Cyclic References during Serialization

In the previous post, we discussed handling subtypes during protubuf serialization. In this post, we will continue with serialization and discuss the handling of cyclic references. We will look into how cyclic references could be addressed in 3 key types of serializations. JsonXmlProtobuf As an example of cyclic references, we will address the classic example … Continue reading Handling Cyclic References during Serialization

Protobuf – Handling sub-classes

In this blog post, we will look into how to handle subclasses or interface implementations during protobuf serialization. Consider the following class. [ProtoContract] public class Person { [ProtoMember(1)] public string FirstName { get; set; } [ProtoMember(2)] public string LastName { get; set; } } For serializing an instance of the above with protobuf-net, you could do … Continue reading Protobuf – Handling sub-classes

Backend For Frontend Pattern

In this blog post, we will discuss Backend for Frontend pattern. To be honest, I was a bit surprised and skeptical when I first heard about this pattern, but the more I thought about it, the more sense it made. So what exactly is the Backend For Frontend pattern. The Problem Consider a generic backend Web Api that … Continue reading Backend For Frontend Pattern

Automapper vs Mapster

AutoMapper is undoubtedly the most popular object to object mapping library used around and it wouldn't be a surprise to know if any of us, including yours truly, have even tried out alternatives. I recently tried out Mapster and was quite surprised by the results. Even they did mention their Github pages about being faster than Automapper, I honestly didn't believe … Continue reading Automapper vs Mapster

Anti Corruption Layer

Integration with legacy systems is often challenging. Quite often the legacy systems would be a playground of obsolete APIs and convoluted data schemes. In order to provide compatibility with the older system, the newer system often has to share some of these undesirable traits of the legacy systems and corrupt them. Usually, developers tend to … Continue reading Anti Corruption Layer

Implementing Mediator And CQRS in .Net 6 Web Api

In some of the previous posts, we visited the Mediator and CQRS patterns, understanding the benefits it brings to the table. In this blog post, we will look into implementing the Mediator and CQRS pattern in our .Net Core Web Api application. We would be using the Mediatr library by Jimmy Bogard for the implementation of the … Continue reading Implementing Mediator And CQRS in .Net 6 Web Api