μ

Microservices

Spring Cloud · Interview Quick Notes

10 topics
01

Microservices

Introduction

What Are Microservices?

An architectural style where an application is split into small, independently deployable services, each focused on a single business capability.

Key Traits

Loosely CoupledIndependently DeployableSingle ResponsibilityOwn DatabaseCommunicates via APIs

Benefits

Scalability
Scale only what needs it
🛡️
Resilience
Failure is isolated
🚀
Speed
Faster, independent deploys
🔧
Flexibility
Different tech per service

Microservices vs Monolith

Aspect
Old Way
Microservices
Scaling
Scale entire app
Scale individual services
Deploy
Full redeploy always
Deploy only changed service
Codebase
One large codebase
Multiple small codebases
Failure
Can crash everything
Isolated to one service
Tech Stack
Locked to one stack
Mix of stacks allowed

12-Factor App Highlights

  1. 01.Codebase — one repo per service
  2. 02.Config — store config in env vars
  3. 03.Stateless Processes — no sticky sessions
  4. 04.Dev/Prod Parity — keep environments similar
  5. 05.Logs — treat logs as event streams

Common Challenges

  • Distributed system complexity
  • Network latency between services
  • Data consistency across services
  • Service-to-service authentication
  • Debugging across multiple services