Real World Example

From Monolith to Microservices: A Typical Indian E-Commerce Journey

Many Indian startups (in quick commerce, food delivery and fintech) followed a path like this:

StageTeam sizeArchitecture
Launch5 developersOne Spring Boot monolith + MySQL on two VMs
Growth (1 lakh orders/day)30 developersGateway in front; catalogue and search extracted (strangler fig), Redis cache
Scale (10 lakh orders/day)100+ developersOrder, payment, inventory, delivery as services; Kafka; sagas; Kubernetes
MaturityMany teamsPlatform team: service templates, observability, canary releases, internal developer portal

The lesson: microservices were adopted when team size and scale demanded them, one service at a time, with observability and automation built first.

A Service Template the Platform Team Provides

Template configuration

New services start from a template that already includes everything in this level, so teams only write business code:

application.yml

spring:
  application:
    name: ${SERVICE_NAME}
  threads:
    virtual:
      enabled: true
  config:
    import: optional:configtree:/etc/secrets/
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: https://auth.shopease.in/realms/shopease
          audiences: ${SERVICE_NAME}
  kafka:
    template:
      observation-enabled: true
    listener:
      observation-enabled: true
server:
  shutdown: graceful
management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus
  endpoint:
    health:
      probes:
        enabled: true
  metrics:
    tags:
      application: ${SERVICE_NAME}
  tracing:
    sampling:
      probability: 0.1
logging:
  structured:
    format:
      console: ecs

Tip: The template also ships the Dockerfile, Kubernetes manifests, GitHub Actions workflow, outbox tables and Grafana dashboard. A new service goes from "git clone" to production in a day, and every service looks the same to the on-call engineer.