stock market

What is Microservices

Spread the love

Before learning about microservices, it is important to first understand the challenges and limitations of monolithic applications.

What is a Monolithic Application?

A Monolithic Application is a software architecture where all components of an application are built and deployed as a single unit. The user interface, business logic, authentication, database access, reporting, and other functionalities are tightly coupled and run within the same codebase and deployment package.

Example

In a CRM application, modules such as:

  • Customer Management
  • Lead Management
  • Opportunity Management
  • Reporting
  • Authentication

Advantages of Monolithic Applications

  • Simple to develop for small projects
  • Easier debugging in the initial stages
  • Single deployment process
  • Lower infrastructure complexity
  • Easier local development setup
Challenges of Monolithic Applications

1.Scalability Issues

If only one module requires more resources, the entire application must be scaled.

Example :

Suppose the reporting module consumes high CPU during month-end reports.

Monolithic:

Need to create 5 more instances of the entire application.

2.Large Code Base

Over time, the application becomes huge.

Problems:

  • Difficult to understand code
  • Longer onboarding for new developers
  • Increased dependency management

Example: A CRM system with 500+ APIs may become difficult to maintain.

3.Slower Deployment

Even a small change requires deployment of the entire application.

Example:

Changing a customer screen label requires:

  • Build complete application
  • Run full regression testing
  • Deploy entire application

This increases release time.

4.Longer Build Time

As code grows:

  • Compilation time increases
  • Build pipelines become slower
  • CI/CD execution takes longer

Example: A build may take 45 minutes instead of 5 minutes.

5.Higher Risk During Deployment

A bug in one module can impact the entire system.

Example

A change in Opportunity Module ,can accidentally affect lead module ,Customer Module, Quotation Module because everything runs together.

Difficult Team Collaboration

When multiple teams work on the same codebase:

Issues:

  • Merge conflicts
  • Dependency conflicts
  • Coordinating releases

Example: 10 teams contributing to the same repository can slow development significantly.

6.Single Point of Failure

If the monolithic application crashes:

Application Down
|
+--> Customer Module Down
+--> Lead Module Down
+--> Reporting Down
+--> Quotation Down
What is Microservices Architecture?

Microservices is an architectural style where a large application is divided into multiple small, independent, business-focused services. Each service is responsible for a specific business capability and can be developed, deployed, scaled, and maintained independently.

Unlike a monolithic application, where everything runs as one unit, microservices split the application into separate services that communicate through APIs, messaging, or events.

Example: CRM System

Instead of one large application:

CRM Application
├── Customer Management
├── Lead Management
├── Opportunity Management
├── Quotation
├── Notification
├── Reporting
└── Authentication

Microservices architecture separates them:

Each service owns its code and database.

Core Characteristics of Microservices

1. Independently Deployable

A service can be deployed without affecting others.

2. Independently Scalable

Only heavily used services need additional resources.

3. Business-Oriented

Services are designed around business domains.

Examples:

  • Customer Service
  • Lead Service
  • Vehicle Service
  • Finance Service

4. Technology Independent

Different services can use different technologies.

Example:

Customer Service -> Java Spring Boot
AI Recommendation -> Python
Notification -> Node.js
Analytics -> Spark

When Should You Avoid Microservices?

  • Small applications
  • Small teams (less than 10 developers)
  • Simple business requirements
  • Early-stage MVPs
Microservices Interview Question and Answers

Leave a Reply

Your email address will not be published. Required fields are marked *