Design Unit Testing Application
MediumLet's design a simplified Application that allows users to run pre-defined "Units of Work" and track their execution results. Think of this as a lightweight, in-memory task execution framework. The system should allow registering different Units of Work, executing them, and recording their status (success/failure) along with relevant output or error messages. We want to build this with a strong focus on testability, extensibility and thread safety.
This application will mimic a simple task scheduling system. Each unit of work will represent an independent task. For simplicity, consider these units of work as in-memory operations, avoiding heavy I/O (e.g., database interactions) to keep the focus on design patterns and concurrency. The core functionality lies in managing and executing these units of work efficiently and reliably.
Requirements
Think like an Architect
Before revealing the requirements, imagine you're in the interview right now."How would you clarify the scope with your interviewer?"