GraphQL was developed by Facebook in 2012 to overcome the shortcomings we had with REST APIs

Photo by Dylan McLeod on Unsplash

GraphQL is a query language to retrieve data from a server. It is an alternative to REST, SOAP, or gRPC in some way.

GraphQL is a new API standard and offers a revolutionary approach to building data-driven applications. The project was first created by Facebook while they were shifting their mobile app from HTML5 to a native mobile app.

GraphQL follows the same set of constraints as REST APIs, but it organizes data into a graph using one interface. Objects are represented by nodes (defined using the GraphQL schema), and the relationship between nodes is represented by edges in the…


To create understandable, readable, and testable code that many developers can collaboratively work on

Image credit — www.pexels.com

The SOLID Principles are five principles of Object-Oriented class design. They are a set of rules and best practices to follow while designing a class structure.

SOLID is an acronym for the first five object-oriented design (OOD) principles by Robert C. Martin (also known as Uncle Bob).

Adopting these practices can also contribute to avoiding code smells, refactoring code, and Agile or Adaptive software development.

Today we will learn bellow topics

  1. What are SOLID principles and their importance in software engineering
  2. Describe each principle in the easiest way including proper images and descriptions.
  3. Refactor old buggy codes using SOLID principles

What are SOLID principles?

In object-oriented computer programming, SOLID is…


Details of microservice and its spring implementation. Usages discovery server, zuul API gateway, ribbon, inter-services communication and deploy in docker

Microservices is an architectural design for building a distributed application using containers. Microservices get their name because each function of the application operates as an independent service. This architecture allows for each service to scale or update without disrupting other services in the application.

Photo by Austin Distel on Unsplash

In this article, I will explain and implement bellow points

  1. What are microservice and their importance?
  2. Comparison between monolithic architecture and microservice architecture
  3. How Netflix stack (Eureka, ZUUL, Ribbon, etc) are the life savior in our case?
  4. Details level descriptions of Netflix technology stack
  5. Describe and implement our proposed microservice architecture (service discovery, API gateway routing…


Docker is a tool designed to make it easier to create, deploy, and run applications by using containers.

Photo by Dominik Lückmann on Unsplash

Today we will cover bellow things

  1. The importance of docker
  2. Overview on docker
  3. Dockerizing spring app with detailed explanations
  4. Docker various operations eg: Image creation and deletion, container creation and deletion and so more
  5. Monitor Docker images using command line and docker desktop apps
  6. Advance part: Automotion of docker task eg: docker build, run and push to docker hub from Gradle command

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 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
  2. Create the Race condition and identify the problem
  3. Solve the problem using new architecture and implementation
  4. Share the codebase with file descriptions

Here I am sharing an application architecture. Suppose this is a bank wallet application backend. Its architecture is very simple. It has a single app server, single app node, single Redis server, and a single database


A stored procedure is compiled code that you can call from within SQL statements or from client applications.

Image Credit — www.tutorialrepublic.com

A stored procedure is a set of Structured Query Language (SQL) statements with an assigned name, which is stored in a relational database management system (RDBMS) as a group, so it can be reused and shared by multiple programs.

So if you have an SQL query that you write over and over again, save it as a stored procedure, and then just call it to execute it.

Once a stored procedure has run, it remains in memory, so the next user can run it without incurring the overhead of loading it into memory.

In this article, we will discuss below…


REST APIs are used to access and manipulate data using a common set of stateless operations. Let’s make them robust

Male coding at desk
Male coding at desk
Photo by Nubelson Fernandes on Unsplash

Application programming interfaces (APIs) are everywhere. Most modern web applications expose APIs that clients can use to interact with the application.

They enable software to communicate with other pieces of software — internal or external — consistently, which is a key ingredient in scalability, not to mention reusability.

Like any technology, REST APIs bring their own unique security challenges. The question that remains is how to reduce those vulnerabilities.

Today we will discuss the following topics:

  1. What is REST API?
  2. Importance of REST API and application security
  3. Describe the top 10 best practices to secure REST APIs

If you want…


Work smarter not harder — Allen F. Morgenstern

Photo by Austin Distel on Unsplash

Starting a new career in software development is both exciting and frightening. There is a lot to learn, and it takes years of practice to become really good at it, like with other crafts.

One of the biggest myths about software engineers is that all they need to know is how to write great code. But, a quick look at questions asked at software engineering job interviews shows that employers look way beyond candidates that are simply great programmers.

To make it a little bit easier, especially for beginners, I want to share some knowledge I’ve gained over the years…


MongoDB is great for transactional stores where performance is a concern. It's also great when the data structure is going to evolve over time, as its schema-less operations allow you to update the data on the fly.

Photo by Luke Chesser on Unsplash

What we will discuss in this article?

  1. Types of database system
  2. Details of RDBMS and NoSQL database and use-cases
  3. Difference between documents databases like MongoDb and RDMS database like MySql
  4. Details about MongoDB
  5. Configure and run MongoDB into a docker container and access data from the terminal
  6. Practical details level integration between MongoDB Spring boot application.
  7. Share source code and other resources

Prerequisites
To cover this article you have to prior knowledge of docker and spring boot. To get this knowledge you can check below my medium article

Types of the database management system

There are several types of database…


In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. — Wikipedia

Photo by Scott Graham on Unsplash

Design patterns are solutions to general problems that software developers faced during robust scalable software development.

Design patterns can speed up the development process by providing tested, proven development paradigms. Effective software design requires considering issues that may not become visible until later in the implementation.

Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns.

By the end of this article, you will learn

  1. What is a design pattern?
  2. Types of design pattern
  3. Why design pattern is important in software engineering?
  4. Details about factory…

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