Sign in

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

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


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


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

  • It is not supported for block scope variables. In other words, the variable declared with the var keyword is visible throughout the script. …


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…


Design patterns are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.

Most software engineers don't have a clear understanding of basic concepts in programming. Programming doesn’t mean creating a set of instructions for completing some specific task. You need to ensure that your code follows standards and good programming principles. If you learn the basic concept completely, you can improve and simplify your code. That means you can improve the performs of your application.

If you have ever seen a doctor…

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