Sign in

BSc. (Hons) in Engineering, Associate Software Engineer at Virtusa

In the previous blog post, we walked over the migration of Monolithic to Microservices architecture. If you haven’t read the previous post yet, I suggest you read that before proceeding with this article.

At the end of this article, you will understand three different design patterns used for microservices.

Aggregator Pattern

We all know that microservices is designing the application as a collection of independent services. These services may not represent a particular functionality of the application. So, the aggregator pattern invokes several microservices to achieve its functionality. …


In this article, let’s explore two different architectures which are used to develop large-scale web applications. This can be considered as the evolution of software architecture. But it doesn't mean one is the best and the other is useless anymore. If you have worked with enterprise-level projects, you may be heard these terms called Monolithic Applications and Microservices. Since 2013, Martin Fowler’s concept of Microservices was the most trending topic among software architectures. So, It is better to have a good understanding of them.

Monolithic Architecture

Monolithic applications are working with a single executable unit for your entire application. In other words…


If you are a software engineer, you must know where your application is deployed. A few years back, web applications were deployed on dedicated physical servers. The evolution of application deployment can be considered as three generations. Let’s explore it for your knowledge.

Generation 1 — Dedicated Physical Servers

Earlier days, the application was deployed in a dedicated physical server. You may think that nowadays also deployed on physical servers. But it was a different story. …


JavaScript is one of the most popular programming languages in the world. It can be used to build web/ mobile applications, real-time networking applications, command-line tools, etc. In 2015, ECMA release a new version called ECMAScript 6 (ES 6). This specification defined many new features for JavaScript. Let’s see those features in this article.

Declaring variables and constants

Before ES6, the var keyword is used to declare any kind of variables. But there are multiple issues with this keyword.


In some situations, creating a new object is very expensive. Because the application may be facing performance issues. Instead, the prototype design pattern encourages you to clone the existing object. Let’s see the importance of this design pattern.

Before getting into this article, I suggest you read my previous articles about design patterns. Because I walked through few important design patterns you must know.

Article series:- Design Patterns with Java

The Prototype pattern comes under the creational patterns. The specialty of creational patterns provides a way to create a new instance without using the typical new keyword. So. the mechanism…


The chain of responsibility pattern is under the behavioral design patterns. As the name implies, this pattern can handle a few different activities as linkages of a chain. Each activity receives the next activity to make the chain. The receiver can perform the activity without knowing the sender(previous process) and the sender also performs its job without knowing the receiver(next process). It means this pattern can achieve loosely coupled software design for our application. This set of activities can be considered as a pipeline or a chain of objects for processing a request.


The builder pattern is under creational design patterns. As the name implies, it is an alternative way to construct complex objects by dividing them into small pieces. This is a very useful pattern when you have to implement different immutable objects using the same object-building process. In simple words, the object creation process is simplified by a step-by-step approach.

This pattern is used in some situations like the number of properties is high and few properties are initialized in each object.

Let’s take an example to understand these use cases.

Assume we are creating an application for a supermarket. Then…


This is the fourth article of the design pattern article series. If you haven’t read previous articles yet, I suggest you read that before proceeding with this article.

Article series:- Design Patterns with Java

Factory pattern is also known as Factory method pattern and it is falling under the creational design pattern. The main objective of the Factory pattern is to create instances without exposing the instantiation logic to the client. Actually, this is one of the most used design patterns in Enterprise applications. The ResourceBundle, NumberFormat classes are some examples of the Factory pattern in Java.


In the previous blog posts, we walked over to the few design patterns. If you haven’t read them yet, I suggest you read that before proceeding with this article.

Article series:- Design Patterns with Java

Did you ever make trouble with an undo feature? If yes, this article will give you a good understanding of implementing an undo feature in your application.

Actually, the Memento pattern is specially designed to restore the state of an object to its previous state. This pattern belongs to behavioral design patterns which deal with interaction or communication between these objects. First, you need to…


In the previous blog post, we walked over to the overview of design patterns. If you haven’t read the previous post yet, I suggest you read that before proceeding with this article.

Singleton pattern is under creational patterns that are used to control the object creation. Most of the engineers say that “Singleton is nothing. It just one instance”. But we need to understand one instance per what?

Actually, Singleton is one instance per container. As a java developer, one instance per JVM. In one of my previous articles about JVM, I explained all the instances are stored in the…

Jalitha Dewapura

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