# 2. Seperate service for Executor Pool Date: 2021-11-21 ## Status Accepted ## Context The Executor Pool has to keep track of which Executors are online and what task types they can execute. The Roster keeps track of tasks that need to be executed and assigns Executors to tasks. The Executor Pool functionalty could be implemented in a seperate service or as a part of the Roster. ## Decision The executor pool will be implemented as a seperate service. Most importantly, the Executor Pool and the Roster have quite different responsibilities and reasons to change. On one hand, the Executor Pool manages the Executors, and therefore it will change if we want to add functionality that impacts how Executors log onto the system and how we keep track of them. For example, if we want to check if an executor fulfills some requirements before logging on. On the other hand, the Roster manages the execution of tasks. TODO Single responsibility Potential Code volatility Scalability - Roster needs much more scale ## Consequences The one funcionalty that is duplicated is error handling when an executor disconnects nongracefully... TODO