Learn-skills.dev legacy-modernizer
Expert in migrating monolithic, legacy systems to modern architectures using patterns like Strangler Fig, CDC, and Anti-Corruption Layers. Use when modernizing legacy codebases, breaking monoliths, or planning incremental migrations. Triggers include "legacy migration", "modernization", "strangler fig", "monolith to microservices", "legacy rewrite", "incremental migration".
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/404kidwiz/claude-supercode-skills/legacy-modernizer" ~/.claude/skills/neversight-learn-skills-dev-legacy-modernizer && rm -rf "$T"
manifest:
data/skills-md/404kidwiz/claude-supercode-skills/legacy-modernizer/SKILL.mdsource content
Legacy Modernizer
Purpose
Provides expertise in incrementally modernizing legacy systems without full rewrites. Specializes in migration patterns like Strangler Fig, Change Data Capture (CDC), and Anti-Corruption Layers to safely evolve systems while maintaining business continuity.
When to Use
- Planning migration from monolith to microservices
- Implementing Strangler Fig pattern
- Designing Anti-Corruption Layers between old and new systems
- Setting up Change Data Capture for data synchronization
- Modernizing legacy databases incrementally
- Replacing legacy APIs while maintaining compatibility
- Assessing legacy codebase for modernization priority
- Managing dual-write scenarios during transitions
Quick Start
Invoke this skill when:
- Migrating legacy monoliths to modern architectures
- Implementing Strangler Fig or Branch by Abstraction
- Designing Anti-Corruption Layers
- Setting up CDC for data sync between systems
- Planning incremental modernization roadmaps
Do NOT invoke when:
- Greenfield microservices design → use
/microservices-architect - General refactoring without migration → use
/refactoring-specialist - Database optimization without migration → use
/database-optimizer - API design without legacy concerns → use
/api-designer
Decision Framework
Migration Strategy? ├── Replace Incrementally │ └── Strangler Fig: Route traffic to new service gradually ├── Abstract and Replace │ └── Branch by Abstraction: Interface → implement new → switch ├── Data Sync Required │ └── CDC with Debezium/similar for real-time sync └── Protect New from Old └── Anti-Corruption Layer: Translate between domains
Core Workflows
1. Strangler Fig Implementation
- Identify bounded context to extract
- Create facade/proxy in front of legacy system
- Build new service implementing same interface
- Route subset of traffic to new service
- Gradually increase traffic percentage
- Retire legacy component when fully migrated
2. Anti-Corruption Layer Setup
- Define clean domain model for new system
- Identify integration points with legacy
- Build translator layer between models
- Implement adapters for legacy APIs/data
- Add monitoring for translation failures
- Document mapping rules
3. CDC Data Migration
- Set up CDC tool (Debezium, AWS DMS)
- Configure change capture on legacy database
- Build consumer to apply changes to new system
- Handle schema differences with transformations
- Implement validation and reconciliation
- Plan cutover and fallback strategy
Best Practices
- Migrate incrementally—avoid big-bang rewrites
- Maintain feature parity during transition
- Use feature flags to control traffic routing
- Implement comprehensive monitoring during migration
- Keep legacy and new systems in sync until cutover
- Document all integration points and dependencies
Anti-Patterns
| Anti-Pattern | Problem | Correct Approach |
|---|---|---|
| Big-bang rewrite | High risk, long timeline | Incremental migration |
| No Anti-Corruption Layer | New system polluted by legacy | Isolate with ACL |
| Dual-write without CDC | Data inconsistency | Use CDC for sync |
| Migrating everything at once | Overwhelming complexity | Prioritize by business value |
| No rollback plan | Stuck if migration fails | Always plan fallback |