Reference

The idea is to design programs so that their architectures immediately present their use case. It’s a way to design programs so that its internal dependency graph is organized cleanly and its elements are joined together with as loose coupling as possible.

Ultimately, the goal is the separation of concerns between application layers, this architecture and many like it aren’t dependent on presentation models or platforms. All the arrows, or dependencies, point inwards in the abstraction chain, each successive layer less abstract than the one before it.

Keeping the arrows pointing inwards makes the code easy to maintain, extend, test and refactor. EBI imposes some architectural requirements on the programmers, that is, you must navigate around its rules, but this is kept at a minimum.

EBI