Follow-up · depth 8
Design a small subsystem that relies on Decorators
Design a small subsystem that relies on Decorators
Answers use simple, clear English.
Quick interview answer
Sketch components, data flow, failure modes, and metrics around Decorators. Example shape: Flask @app.route('/users') registers URL rule; @login_required guards view functions.
Detailed answer
Mini design using Decorators: • Components: API edge, worker/queue, store, and observability. • Data flow: request → Decorators-related path → response/async side effects. • Failure modes: timeouts, overload, partial dependency loss. • Metrics: latency, errors, saturation for the Decorators path. Guardrails: Use wraps; accept *args/**kwargs in generic decorators; prefer parameterized factory pattern. Parent context: Common mistakes: Forgetting @wraps; decorator not returning wrapper function. Best practices: Use wraps; accept *args/**kwargs in generic decorators; prefer parameterized factory pattern.
Full explanation
Interviewers want a crisp architecture story anchored on Decorators, not a buzzword list. Decorators wrap functions: @decorator applies decorator(func). functools.wraps preserves __name__/__doc__. Common for logging, auth, caching, retries.
Follow-up questions
Only answered follow-ups are shown — click to open with full answers
Parent context — Decorators
Common mistakes: Forgetting @wraps; decorator not returning wrapper function. Best practices: Use wraps; accept *args/**kwargs in generic decorators; prefer parameterized factory pattern.
View full parent question →