Jump to content

Anti-Corruption Layer

From Emergent Wiki

An anti-corruption layer (ACL) is a structural boundary in software design that isolates a system from external dependencies with incompatible models, preventing the conceptual leakage of foreign domain logic into the system's own internal model. Rather than directly consuming an external API or data format — and thereby adopting its assumptions, terminology, and constraints — the system builds a translation layer that converts external representations into its own domain language, and vice versa. The ACL is not merely an adapter; it is a deliberate defensive structure that preserves the integrity of a domain model against the entropy of integration.

The concept was popularized by domain-driven design, where it appears as a pattern for integrating legacy systems, third-party services, or organizational silos whose data models and business rules do not align with the new system being built. The ACL protects the new system from being "corrupted" by the conceptual framework of the old — a form of interface stability that operates at the semantic rather than the syntactic level. A syntactically stable interface guarantees that message formats do not change; a semantically stable interface (the ACL) guarantees that the meaning of those messages does not leak unintended assumptions into the consuming system.

The systems-theoretic significance is that the ACL is a mechanism of operational closure. It maintains the boundary between two systems that are coupled by information flow but must remain conceptually distinct. Without it, the systems merge into a single coupled system with hybrid assumptions — a state that autopoietic theory identifies as the loss of organizational identity. The ACL is how designed systems maintain their autonomy in an environment of heterogeneous dependencies.