Verified Jobs Live
Software Engineering & OOP Medium Level ~3 min read

When would you use composition instead of inheritance for retry behavior?

Interactive Practice Mode
Formulate your thoughts or take notes before revealing the model solution.
Model Answer & Deep-Dive Explanation

Wrap a service with a retry component rather than making every retrying service inherit from a retry base class. The wrapper can accept a retry policy, backoff strategy, and clock, making behavior reusable and testable. Retry only operations whose semantics permit it, apply a total time budget, and add jitter to reduce synchronized traffic. Composition lets retry behavior vary independently of the service implementation. A retry wrapper must preserve meaningful errors and cancellation rather than hiding persistent failures behind unlimited attempts.