@Override
public ListenableFuture<O> deploy(Id.Account id, @Nullable String appId, I input) throws Exception {
Pipeline<O> pipeline = pipelineFactory.getPipeline();
pipeline.addLast(new LocalArchiveLoaderStage(id, appId));
pipeline.addLast(new VerificationStage(datasetFramework));
pipeline.addLast(new DeployDatasetModulesStage(datasetFramework));
pipeline.addLast(new CreateDatasetInstancesStage(datasetFramework));
pipeline.addLast(new DeletedProgramHandlerStage(store, programTerminator, streamConsumerFactory,
queueAdmin, discoveryServiceClient));
pipeline.addLast(new ProgramGenerationStage(configuration, locationFactory));