Anti-Corruption Layer, ACL
Updated 2026-08-10
INTRODUCTION
English translation pending.
CORE DEFINITION
Described in domain-driven design by Eric Evans, the anti-corruption layer is an adapter placed between a system and an external model that it must interact with but does not control. The layer translates requests and responses, mapping the foreign model into the local one, and prevents concepts from the external system from shaping the internal design. Key qualification: the layer adds maintenance cost and latency, and it only works when translation is complete, since any shortcut allows the foreign model to leak through.
SCAFFOLDING EFFECT
Reduce cognitive load
- Draw the boundary: identify which external systems have models you do not want inside your core. - Translate completely: convert foreign concepts into your own vocabulary at the boundary. - Contain the mess: let the layer absorb quirks so the core only ever sees a clean model.
Anchor fast decisions
Models spread through the interfaces they touch, so integrating directly with a poorly designed external system imports its assumptions into your own design. Inserting a translation boundary stops that propagation, because the core communicates only in its own terms. The cost is an additional component to maintain, but it preserves the coherence of the internal model over time.
MINIMUM ACTION
In progress 0/1Practice this model in one real situation:
account_treeGenealogyexpand_more
menu_bookReferencesexpand_more
Source support: Explicit
- learn.microsoft.comhttps://learn.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layerverified
PRIVATE NOTES · Only visible to you
SAVED Q&A
ENTRY Q&A · Private saving available
Ask with a clear boundary
thinkingmodels answers from published entry context only.
Your question is sent to thinkingmodels. The answer uses public entry context only.
RELATED MODELS