Software layer responsible for user-facing presentation.

Code responsible for recovering from failures.

General guideline for producing maintainable software designs.

Layer containing application or business rules.

Increasing delay between repeated operation attempts.

Five principles for maintainable object-oriented software design.

Layer responsible for storing and retrieving persistent data.

Retry strategy that progressively increases waiting time.

Pattern dynamically adding behavior to objects.

Principle of avoiding unnecessary duplication.