Sitemap
hansini gunasena

hansini gunasena

Scoping Microservices

2 min readJul 21, 2025

--

Press enter or click to view image in full size

Scoping microservices refers to defining clear boundaries, responsibilities and size of a microservice. Its an important step in microservices architecture to ensure each service is autonomous, manageble and cohesive.

🔍What is “scoping” mean in Microservices?

It means deciding What a microservice should and shouldn’t do.

✅Goals of scoping a microservice?

  • To ensure single responsibility per service
  • To maintain high cohesion. (everything inside the service is closely related)
  • To minimize tight coupling. (service should not be heavily depend on others)
  • To keep services independently deployable and scalable.

Poorly scoped microservices lead to:

  • Tight coupling (services overly dependent on each other)
  • Duplicated logic across services
  • Hard-to-maintain systems

✅ How to Scope a Microservice:

  1. Start from Business Capabilities:
  • Each microservice should represent a business function (e.g., Order Management, Payment Processing, User Profile).
  • Use Domain-Driven Design (DDD) concepts to divide based on bounded contexts.

2. Avoid the Pitfalls:

  • Don’t make it too small → Overhead of communication, orchestration.
  • Don’t make it too large → Becomes a monolith in disguise.

3. Identify Boundaries:

  • Who uses it?
  • What data does it own?
  • What other services depend on it?

ex:

1. Business Domain-Driven Design (DDD)

Use Domain-Driven Design to group features into bounded contexts.

Get hansini gunasena’s stories in your inbox

Join Medium for free to get updates from this writer.

In an e-commerce system, different bounded contexts might be:

  • User Management
  • Product Catalog
  • Order Processing
  • Payment Handling
  • Inventory Management

Each context can become a separate microservice.

2. Single Responsibility Principle

Each service should have one clear purpose.

  • ✅ Example: InventoryService manages only stock levels
  • ❌ Bad Scope: InventoryService also handles payment and orders

3. Define APIs and Contracts

Clearly define what the service exposes (e.g., via REST, gRPC).

  • Avoid leaking internal logic
  • Keep the public contract stable

4. Keep Data Ownership Clear

Each service should own its own database or data model.

  • This enforces boundaries
  • Communication with other services should be via APIs — not direct DB access

🛠 Practical Tip

When scoping microservices in a real-world project, ask:

  • What is the core business capability this service supports?
  • Can it be developed, tested, and deployed independently?
  • Does it have its own data and logic?

Tools/Techniques to Help Scope Services:

  • Domain-Driven Design (DDD)
  • Event Storming (visualize how data and events flow)
  • Context Mapping
  • Service templates / architecture blueprints

“Scope a microservice around business logic, not around technical layers (e.g., DB layer, API layer, etc.).”

--

--