All notable changes to this project will be documented in this file.
- Standardized Prometheus metrics:
PrometheusMetricsCollectornow emits the harmonized cross-SDK metric surface — details - Automatic metrics wiring:
ConductorClient.Builder.withMetricsCollector(...)installs the HTTP interceptor and auto-registers listeners onTaskClient,WorkflowClient, andTaskRunnerConfigurer - HTTP API client metrics via OkHttp interceptor (
http_api_client_request_seconds,task_result_size_bytes,workflow_input_size_bytes) - Event-driven metrics architecture with
EventDispatcherand typed event POJOs - File storage support:
FileClientfor uploading and downloading files via S3, Azure Blob, GCS, or local storage backends, with single-part and multipart upload support FileHandlerabstraction for passing files into and out of workers — the SDK auto-resolvesconductor://file/references in task input and uploadsFileHandlervalues in task output@InputParam-annotated worker parameters of typeFileHandlerare automatically deserialized from file references- Spring auto-configuration for
FileClientandFileClientProperties(conductor.file-client.*properties) - Automatic token refresh via
TokenRefreshInterceptor: transparently retries requests that fail withEXPIRED_TOKENorINVALID_TOKEN(401/403), minting a fresh token and replaying the request once FatalAuthenticationExceptionand JVM termination when token refresh is permanently exhausted (5 consecutive failures), preventing workers from silently spinning on bad credentials
PrometheusMetricsCollectormetric names updated to the harmonized cross-SDK catalog (e.g.task_poll_total,task_execute_time_seconds)micrometer-registry-prometheusis now a transitive (api) dependency- Token refresh reworked to a reactive interceptor model replacing the previous scheduled refresh mechanism; includes exponential backoff and thundering-herd prevention
- Removed non-functioning scheduled token refresh mechanism (replaced by automatic reactive refresh)
TaskClient.ack(String, String)— useack(String taskType, String taskId, String workerId)
- New major release – Read more
- Improve Spring modules with auto-configuration - conductor-oss/conductor#287
- Added Jackson Kotlin module to client ObjectMapper - conductor-oss/conductor#294
- Fix chronounit issue in java sdk - conductor-oss/conductor#298
- Added ZoneId to
SaveScheduleRequest- conductor-oss/conductor#302 - Add callTimeout field to ConductorClient builder - conductor-oss/conductor#317
- Task poll update v2 - conductor-oss/conductor#328
- Add testWorkflow to OrkesWorkflowClient - conductor-oss/conductor#333
- Added lease extension to java sdk and fixed tests - conductor-oss/conductor#349
- Unify environment variable usage - conductor-oss/conductor#353
- Add support for configurable MetricsCollector in Spring client - conductor-oss/conductor#356