Follows the Ports and Adapters pattern (Hexagonal Architecture). • The implementation is guided by tests. • It is decoupled from technology details. • Follows lots of Principles (Stability, Abstractness, Dependencies, SOLID). • Pluggable User Interface. @ivanpaulovich