Skip to content
Back to skills

Microservices Decomposition

ASecurity

Use when decomposing monoliths into microservices.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
ai-agentspythonapidatabase

Works with

  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill microservices-decomposition --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Microservices Decomposition?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Microservices Decomposition
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-microservices-decomposition/badge)](https://www.skillsdirectory.com/skills/loopyluci-microservices-decomposition)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: microservices-decomposition
description: "Use when decomposing monoliths into microservices."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [microservices, decomposition, monolith, bounded-context, domain-driven-design]
    related_skills: [distributed-systems-patterns, api-design-rest-graphql, container-networking-patterns, event-driven-architecture]
---

# Microservices Decomposition

Decomposing monolithic applications into microservices — from bounded context mapping through service boundaries, inter-service communication, data decomposition, and migration strategies.

## When to Use

- Breaking a monolith into microservices
- Identifying service boundaries from domain analysis
- Designing inter-service communication patterns
- Migrating data from shared to per-service databases
- Managing the decomposition process safely

## Decomposition Patterns

```python
DECOMPOSITION_STRATEGIES = {
    'business_capability': 'Split by business functions (orders, payments, shipping)',
    'subdomain': 'Split by DDD subdomains (core, supporting, generic)',
    'strangler_fig': 'Gradually replace monolith pieces with new services',
    'event_storming': 'Identify aggregates and bounded contexts via workshops',
}

def identify_services(domain_events: List[str]) -> List[str]:
    """Identify candidate services from domain events."""
    # Group events by noun/entity
    services = set()
    for event in domain_events:
        words = event.split()
        # First noun after the verb is likely a service candidate
        for i, w in enumerate(words):
            if w.lower() in ('created', 'updated', 'deleted', 'submitted', 'approved'):
                if i + 1 < len(words):
                    services.add(words[i + 1].lower())
    return list(services)
```

## Common Pitfalls

1. **Distributed monolith** — services that can't be deployed independently
2. **Shared database** — services sharing a database = no real decomposition
3. **Too fine-grained** — each method as a service creates overhead chaos
4. **Wrong boundaries** — splitting along technical layers (not business domains)
5. **No data strategy** — data is the hardest part; plan per-service databases

## Verification Checklist

- [ ] Bounded contexts identified and mapped
- [ ] Services align with business capabilities
- [ ] Each service has its own data store
- [ ] Inter-service communication pattern chosen (sync/async/event)
- [ ] Strangler Fig migration plan in place
- [ ] Deployment independence verified

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.