cluster state is updated by running a `while` logic with a sleep. we need to use go threads with `wait.until` syntactic sugar