In a distributed system we have no idea how other components would fail. Network issues could occur, components could fail or a router or a switch might be broken along the way. We don’t know what could go wrong.
Therefore each component in a distributed system is responsible for staying alive. As a software engineer, you are responsible to keep them alive.

What is a circuit breaker?

🌟 To learn about Circuit Breaker design pattern, you should know about circuit breakers first.

🌟 If your house is powered by electricity, I’m sure your house has a circuit breaker. …

Designed by katemangostar

If you’re new to microservices, I recommend reading my prior article to learn about some basic microservices principles.

So, if you’re good with microservices, get ready to learn about microservice design patterns. In this article, I'm going to explain to you about Aggregation pattern.

The aggregator design pattern describes a service that gets a request, then makes several requests to different services, combines the results, and then responds to the initial request.

Aggregation Pattern has 03 different branches…


If you are new to microservices I suggest you go through my previous article to get to know some must-know concepts about microservices.

So, if you are good with microservices be prepared to learn about common mistakes and best practices for microservices.

  1. Design.
  2. Hardcoded values.
  3. Logging.
  4. Versioning.
  5. Authorization and authentication mechanism.
  6. Dependency.
  7. Make executable contracts.
  8. Fault tolerance.
  9. Documentation.



Let’s talk about one of the Behavioral design patterns, the Chain of Responsibility pattern. The main goal of the Chain of Responsibility pattern is to have loose coupling in the application design. In this pattern, when the sender sends a request, that request will go through a chain of multiple objects and those objects will try to handle the request.

Think of the chairperson, secretary, and committee member. They have different types of permission due to their post. So, if you want to design a system based on their permission hierarchy, you can use this design pattern easily.

Did you…


At least once in our life, we wish, if we had an undo button. But unfortunately, there is no undo. But you cant say the same about software engineering. Because we software engineers have the Memento design pattern which is a Behavioral pattern.

You can use the Memento pattern, whenever you want to get a previous state of an object. …


🔰 Microservices is the most trending topic in the last few years. In 2013 with Martin Fowler's concept about microservices and after several discussions about microservices, people started to think about some new architectural patterns for web applications.

🔰 That’s how microservices came into the picture. Now people are thinking about whether we need to go for this or not.

🔰 To understand whether we should go for microservices or not, we should compare microservice with the architecture we have now and what goal we are trying to achieve.

🔰 So, let’s discuss how we can migrate from web applications…

Source :

In this article, let's talk about some fundamentals of containers (Why we needed containers, what we can do with them).

Before we go directly into Docker and Containers, let's get to know about the history of cloud application architectures.

1. Dedicated Servers (Generation — 1)

In the early days, applications were deployed in physical servers (same as today, but these were dedicated, physical servers/ physical hardware boxes).

Assume we have 3 different servers (a web server, application server, database server). In past, we had 3 physical hardware boxes for each server.

JavaScript ES6 is the latest version available( as of 2021/June/1) since 2015. It's also known as ES6 and ECMAScript 2015. So many awesome features were introduced with ES6, to make programmers work easy.

Here a list of some features that came with ES6. If you are looking for the full specification of ECMAScript 6 please visit from here.

  • The let keyword
  • The const keyword
  • Array.find()
  • Array.findIndex()
  • New Number Methods
  • New Global Methods
  • JavaScript Modules
  • JavaScript Arrow Functions
  • JavaScript For/of
  • New Math Methods
  • New Number Properties
  • JavaScript Classes
  • JavaScript Promises
  • JavaScript Symbol
  • Default Parameters
  • Function Rest Parameter

That sure is a…

Image by Steffi Timm from Pixabay

In some cases, multiple Constructors are needed in an application. This may be due to the user requirement. But the problem with multiple Constructors is that, if there are too many parameters, your code could get ugly( too complex). Look at the example below.

However, rather than implementing Constructors as above, some programmers use what’s known as a Telescoping Constructor.

So, here’s an example of how a Telescoping Constructor can be used. This is only one approach (In this example you can see the Constructor refer to the previous Constructor to assign values).

According to this approach, you can…

Image by Andrew Martin from Pixabay

The prototype design pattern is different from the Singleton and Factory method design patterns which we discussed previously.

The prototype design pattern is all about avoiding creation. Did you know that creating a new object is very expensive? Therefore, what prototype design pattern does is, encourages to clone of an existing object

Consider the following scenario: we’re designing an application for air traffic control. You might want to display 100 or more than 1000 aeroplanes in such a system. …

Hasitha Subhashana

Associate Software Engineer at Virtusa

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store