Conductor Client Spring for Spring Boot 4
July 20, 2026 ยท View on GitHub
Spring Boot 4 / Spring Framework 7 auto-configuration for the Conductor core client, workflow SDK, and Java workers.
Prerequisites: Java 21+, Spring Boot 4, and a running OSS or Orkes Conductor server. For Spring Boot 3, use the Boot 3 module.
Install
Use the published version from Maven Central.
implementation 'org.conductoross:conductor-client-spring-boot4:<VERSION>'
<dependency>
<groupId>org.conductoross</groupId>
<artifactId>conductor-client-spring-boot4</artifactId>
<version><VERSION></version>
</dependency>
Configure
conductor.client.root-uri=http://localhost:8080/api
conductor.client.verifying-ssl=true
For Orkes, inject the endpoint and credentials with your platform secret manager; see connection and authentication. Never commit credentials to an application configuration file.
What auto-configuration provides
The module is registered in META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. A normal @SpringBootApplication discovers it automatically; no manual @ComponentScan is needed.
When conductor.client.root-uri or conductor.client.base-path is configured, it provides a ConductorClient, TaskClient, WorkflowClient, WorkflowExecutor, AnnotatedWorkerExecutor, and a TaskRunnerConfigurer whose lifecycle is managed by Spring. Worker beans and public @WorkerTask methods on @Component beans are registered for polling.
@Component
class GreetingTasks {
@WorkerTask("greet")
public @OutputParam("greeting") String greet(@InputParam("name") String name) {
return "Hello, " + name;
}
}
Expected result: a registered greet task is polled by the Spring-managed worker and completes. Set conductor.worker.greet.threadCount to control its worker concurrency, and make external effects idempotent.
Migration from Boot 3
Switch only the dependency artifact from conductor-client-spring to conductor-client-spring-boot4; the conductor.client.* configuration and worker annotations are intentionally the same. Verify Java 21 and your Boot 4 dependency set first. If you supplied custom client/runner beans, retain them: @ConditionalOnMissingBean keeps your implementations in control.
Next: Spring integration selector, workers, and deployment/scaling.