Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.

Photo by Dominik Lückmann on Unsplash

Today we will cover bellow things

  1. The importance of docker

Prerequisites: Before starting this article you must have knowledge of spring boot with Gradle dependencies. You can learn this from the below link

  1. The importance of docker
  • is a tool designed to make it easier to create, deploy…


The main purpose of load balancing is preventing a server overload and maintaining a healthy amount of activity in each server. By balancing incoming requests and the power provided by the resources, a load balancer creates a highly available, scalable, and reliable web application for your users.

Photo by Chris Liverani on Unsplash

Today we will cover bellow things

  1. Importance of load balancing and scalable application

Our proposed architecture


The purpose of a lock is to ensure that among several application nodes that might try to do the same piece of work, only one actually does it (at least only one at a time).

Photo by Emile Perron on Unsplash

In current days I worked on Redis lock-in distributed system. In distributed system Locking/concurrency management is a very important thing. Without prior knowledge, many unwanted problems may occur.

What we will learn here

  1. Create a simple wallet backend with buggy architecture and code

Here I am sharing an application architecture. Suppose this is a bank wallet application backend. Its architecture is very simple. …


In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn’t a finished design that can be transformed directly into code. — Wikipedia

Photo by Scott Graham on Unsplash

By the end of this article, you will learn

  1. What is a design pattern?
  1. What is a design pattern?
  • Design patterns represent the best practices used by experienced object-oriented software developers.


Asynchronous programming is a means of parallel programming in which a unit of work runs separately from the main application thread and notifies the calling thread of its completion, failure, or progress.

Photo by Sam Poullain on Unsplash

Today I will cover bellow topics

  1. Details about asynchronous programming

Prerequisites
For asynchronous API design, you must need knowledge of spring boot. You may follow the below article about spring boot

Asynchronous programming

  1. Asynchronous programming is a form of parallel programming that allows a unit of work to run separately from the primary application thread. …


Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications.

Photo by John Salvino on Unsplash

Today we will cover bellow things

  1. Importance of API and application security

Prerequisite
Before starting this tutorial, you have to know details about spring boot and JPA. To learn this you may read my bellow medium article.
Spring boot and JPA: For this, you can read this tutorial

  1. Importance of API and application security
  • Businesses usees APIs to connect services and to transfer data, and so a hacked API can lead to a data breach.


“The principal objective of software testing is to give confidence in the software.” — Anonymous.

Photo by freestocks on Unsplash

Today I will cover up bellow topics

  1. Importance of software testing, Test Driven Development (TDD) basics, and aspects of test cases

Prerequisite
Before starting this tutorial, you have to know details about spring boot and JPA. To learn this you may read my below medium article. …


According to Spring documentation
Spring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA-based repositories. This module deals with enhanced support for JPA-based data access layers. It makes it easier to build Spring-powered applications that use data access technologies.

Photo by Tracy Adams on Unsplash

What will we learn here

  1. Spring boot with data JPA setup with Gradle and H2 database

1. Setup of JPA & H2 Database
Here, we will use H2 database because this is a Very fast, open-source, in-memory database. H2 is a relational database management system written in Java. It can be embedded in Java applications or run in client-server mode. No external database required to setup. …

Md Sajedul Karim

Back-end developer, Spring, JAVA, Distributed system, AWS, Google Cloud, Docker, CD/CI, Kubernetes, databases. https://www.linkedin.com/in/sajedulkarim/

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