- Provide clean BankAccount skeleton for student implementation
- Define thread-safety responsibilities for getBalance, deposit, withdraw, and transfer
- Add detailed TODO comments clarifying concurrency and deadlock requirements
- Include hints for lock strategy and global ordering for transfer method
- Ensure compatibility with DemoApplication and stress testing infrastructure
- Replace DemoFactory with DemoApplication to centralize system setup, execution, and shutdown
- Move ExecutorService and ScheduledExecutorService lifecycle management into application layer
- Ensure proper shutdown sequence for worker and monitoring threads
- Simplify Main class to a minimal entry-point wrapper
- Improve clarity of execution flow: build → run → shutdown
- Prevent resource leakage by explicitly awaiting termination of thread pools