A Scheduler defines the requirements of a game room as to how much memory and CPU it will need to execute and other information.
Each Operation has its own properties to be executed.
Maestro has five components: Management API, Game Rooms API, Execution Worker, Runtime Watcher and Metrics Reporter. They all deliver together the Maestro features that will be described in the next sections.
Maestro is composed by:
- Management API: this is the component that the users will use to create your requests to interact with Maestro. For example: create a Scheduler, get Scheduler information, etc.
- Execution Worker: have an execution component to handle Operations to each Scheduler. For example: three Schedulers will have each one an execution component.
- Game Rooms API: game rooms API exposes an HTTP API or a GRPc service to receive game rooms messages that symbolize their respective status. For example: when a game room is ready to receive matches it will send a message informing that.
- Runtime Watcher: is a component in Maestro that listen to Runtime events and reflect them in Maestro. For example: when a game room was created it is notified that this event happened.
- Metrics Reporter: time spaced this component query the Runtime for metrics related to rooms and expose them in an open metrics route. For example: how many occupied rooms and ready rooms are up.