← Back to microservices patterns mapDDD
🔄
Microservices Pattern
Anti-Corruption Layer (ACL)
Translate between your clean domain model and an external or legacy model.
Detailed Description
An ACL protects your service from adopting another system’s messy model or terminology.
It is especially useful during migrations and integrations with legacy systems.
Visual Diagram
ACL protects your domain
External Legacy System
uses: customer_no, acct_ref
↓
[Anti-Corruption Layer]
translates: customer_no → userId
acct_ref → accountId
↓
Your Clean Domain
uses: userId, accountIdTradeoffs
Pros
Domain stays clean, external systems can change
Cons
Translation layer to maintain
Examples: Legacy adapters, SDK wrappers, domain mappers