In this tutorial, let's learn about Circuit Breaker. Circuit breaking is a software design pattern that is basically used if one service impacts other services. If you have some basic knowledge of electronics or electrical engineering you would have definitely heard about circuit breaking or MCB switch(Miniature Circuit Breaker).


In this article, we’re learning about the Architecture and the system design of Taxi Application services like Uber. In the Uber Application when the rider(The person who wants a CAB) requests a driver on the App, the Driver goes to the place to pick that User. Behind the scene, there are 1000 servers which support the trip, and terabytes of the data have been used for the trip. When the beginning of the Uber company they had simple monolithic architecture. They had a backend service, frontend service, and database. Initially, they used python for application servers. …


If you are working for bigger firms and if you want to handle lots of traffic you would have heard about the term Load balancers which people use very often. Let’s see what is Load Balancing and why do we prefer Load Balancing.

What is Load Balancing?

Let’s take the example of Amazon. Amazon might be deploying lots of servers in the back-end for the UI part. Let’s consider these are the different servers that are deploying in the Amazon infrastructure which are running the same code as the Amazon UI. Now does the request get to each of these servers? Let’s say I…


In this tutorial, we are mainly focused on the Zuul API gateway. We have so many API gateways are available. In Spring Cloud we have a Zuul API gateway. If you are working on AWS based environment then you will have different AWS API gateways. So you can use any of them.

What is Microservices?

Microservices — also known as the microservice architecture — is an architectural style that structures an application as a collection of services that are. Highly maintainable and testable. Loosely coupled. Independently deployable. Organized around business capabilities.

If you want more details about Microservices please refer…


In this tutorial, we will be learning what is Hazelcast and when to use it. Hazelcast IMDG is an open-source in-memory data grid based on Java. It is a clustered data-grid, backed by physical or virtual machines. In this tutorial, we will be looking at Hazelcast basic, in the next tutorial we will be implementing Spring Boot + Hazelcast application.

What is Hazelcast?

Let us take an example of a simple Banking Application that performs CRUD operations for User Bank Accounts. Initially, we develop this application using a monolithic approach. The banking application will be deployed into a single server…


In this tutorial, we are going to learn about Kubernetes from the beginning. Kubernetes is the Greek word for helmsman or captain of a ship. You can get an idea from the logo also.

Kubernetes is also referred to as K8s, and that is because there are 8 characters between K and S.

In this session, I am planning to go very beginning and step by step. This will be very easy and very interesting. So let’s get started.

In this tutorial, I am going to explain to you about,

  • What is Kubernetes
  • What is a Container Orchestration Engine
  • Why…


In this tutorial, we are discussing the Whatsapp Application Design. Whatsapp is a chat-based application. Once you know the design of Whatsapp application you would design any chat-based application with newer features.

The special things about Whatsapp are,

  • One to one Chat — You can make a chat with your friends or any numbers which you have in your contacts.
  • Group Messaging — Whatsapp has Groups. Almost 200 people can enter to one group.
  • Sent + Delivered + Read receipts — Here you can see tick marks coming in based on what stage is the message on.
  • Online / Last…


In this tutorial, we are going to learn about Load Balancing. This is an important thing that you need to know when you are building systems. Let me get a simple example for explaining the concept of Load Balancing.

If you have a single computer that is running a program(algorithm) and someone comes to you and says I will pay you money just let me use your algorithm.

And assume that there is a person with a mobile phone. He can connect to your machine and use the algorithm. He only uses your algorithm and gets the result. And every…


In the previous article, we learned how to create Users + Manage + Assign Roles in Jenkins. In this article, I will be highlighting how can we create some basic JOBS in Jenkins. Furthermore, these are the points which I am going to explain.

  • How to create a basic Job in Jenkins.
  • Basic Job Configurations.
  • How to run the Job remotely.
  • How to chain Job Execution

How to create a basic Job in Jenkins?

First of all click on New Item on the Jenkins Dashboard. Then Give a name to your project. Then you can select a Freestyle or Multi-configuration project. For this tutorial please go with the…


In this tutorial, we are going to learn How to do simple configurations for Jenkins. Here are the points which I am going to explain in this tutorial.

  • How to create new Users?
  • How to configure Users?
  • How to create new Roles?
  • How to assign users to Roles?
  • How to control user access on Projects?

First of all, make sure whether your Jenkins server is up and running. Please go through my previous tutorial for getting up and running the Jenkins server.

Once you run the Jenkins server it will start on default 8080 port. …

Kasun Dissanayake

Software Engineer at Pearson Lanka || Former Associate Software Engineer at hSenid Software International

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