All terms

Glossary

Anti-corruption layer

Also: ACL

A translation layer between new and old, so that the quirks of the legacy system do not seep into new code.

Building next to a legacy system leaves you a choice: adopt its data model and inherit its baggage, or translate. The anti-corruption layer is the second answer. It speaks the language of the old system on the outside and the language of the new one on the inside.

The price is another layer to maintain. The gain is that the new side keeps a clean model and the old side can be switched off without everything shifting.

How you notice it

  • A new component has to talk to an old system.
  • The old data model would infect the new code.
  • The legacy system will be replaced later.

Frequently asked

Where does the layer belong?

On the new side, owned by the new team. Put it in the legacy system and it becomes another thing nobody dares to touch. On the new side it can be adapted freely and thrown away the day the old system goes.

Read moreBuilding an anti-corruption layer between Go and PHP