Domain and business logic
We implement rules in one place with tests, so behaviour is consistent across every interface that calls it. When the same rule is duplicated across a web app, an API and a batch job, the copies drift and contradict each other. Keeping one tested implementation removes that whole class of inconsistency.
