@Override
    protected void doExecute(WorkflowContext context) throws HyscaleException {
        if (context == null) {
            return;
        }
        String namespace = context.getNamespace();
        String appName = context.getAppName();
        String serviceName = context.getServiceName();
        
        WorkflowLogger.header(ControllerActivity.STARTING_UNDEPLOYMENT);
        DeploymentContext deploymentContext = deploymentContextBuilder.build(context);

        try {
            deployer.unDeploy(deploymentContext);
        } catch (HyscaleException ex) {
            WorkflowLogger.footer();
            WorkflowLogger.error(ControllerActivity.UNDEPLOYMENT_FAILED, ex.getMessage());
            logger.error("Error while undeploying app: {}, service: {}, in namespace: {}", appName, serviceName, namespace, ex);
            throw ex;
        } finally {
            WorkflowLogger.footer();
        }
    }
Undeploy component acts as a bridge between workflow controller and deployer for undeploy operation
	provides link between {@link WorkflowContext} and {@link DeploymentContext}
workflow-controller/controller-service/src/main/java/io/hyscale/controller/invoker/UndeployComponentInvoker.java