In cases where you are certain that you don't need to requeue items when there are no new changes, you can compare the resource version of the old and new objects. If they are the same, you skip requeuing the work.
We don't need to do anything when the Habitat hasn't changed so we can safely skip requeueing the object.
Accoriding to the controller design doc:
We don't need to do anything when the
Habitat
hasn't changed so we can safely skip requeueing the object.