- split controller logic into components (deployer, observer, router and scheduler) - set the canary analysis final state (failed or finished) in a single run