layered architecture
Splitting an application into controller, service and repository layers, with calls going one way down.
In a layered architecture the web layer translates HTTP, the service layer holds the rules, and the persistence layer stores data; each depends only on the layer below.