Anti-corruption layer (ACL): what is it and when would you use it? | LetsGit.IT