Package io.camunda.zeebe.client
Interface ZeebeClientBuilder
- All Known Subinterfaces:
ZeebeClientCloudBuilderStep1.ZeebeClientCloudBuilderStep2.ZeebeClientCloudBuilderStep3.ZeebeClientCloudBuilderStep4
- All Known Implementing Classes:
ZeebeClientBuilderImpl
,ZeebeClientCloudBuilderImpl
public interface ZeebeClientBuilder
-
Method Summary
Modifier and TypeMethodDescriptionapplyEnvironmentVariableOverrides
(boolean applyEnvironmentVariableOverrides) Allows to disable the mechanism to override some properties by ENVIRONMENT VARIABLES.build()
caCertificatePath
(String certificatePath) Path to a root CA certificate to be used instead of the certificate in the default default store.credentialsProvider
(CredentialsProvider credentialsProvider) A customCredentialsProvider
which will be used to apply authentication credentials to requests.defaultJobPollInterval
(Duration pollInterval) The interval which a job worker is periodically polling for new jobs.defaultJobTimeout
(Duration timeout) The timeout which is used when none is provided for a job worker.defaultJobWorkerMaxJobsActive
(int maxJobsActive) defaultJobWorkerName
(String workerName) The name of the worker which is used when none is set for a job worker.defaultJobWorkerStreamEnabled
(boolean streamEnabled) A custom streamEnabled allows the client to use job stream instead of job poll.defaultJobWorkerTenantIds
(List<String> tenantIds) defaultMessageTimeToLive
(Duration timeToLive) The time-to-live which is used when none is provided for a message.defaultRequestTimeout
(Duration requestTimeout) The request timeout used if not overridden by the command.defaultTenantId
(String tenantId) gatewayAddress
(String gatewayAddress) Deprecated.grpcAddress
(URI grpcAddress) default ZeebeClientBuilder
jobWorkerExecutor
(ScheduledExecutorService executor) Identical behavior asjobWorkerExecutor(ScheduledExecutorService,boolean)
, but taking ownership of the executor by default.jobWorkerExecutor
(ScheduledExecutorService executor, boolean takeOwnership) Allows passing a custom executor service that will be shared by all job workers created via this client.Time interval between keep alive messages sent to the gateway.maxMessageSize
(int maxSize) A custom maxMessageSize allows the client to receive larger or smaller responses from Zeebe.maxMetadataSize
(int maxSize) A custom maxMetadataSize allows the client to receive larger or smaller response headers from Zeebe.numJobWorkerExecutionThreads
(int numThreads) overrideAuthority
(String authority) Overrides the authority used with TLS virtual hosting.preferRestOverGrpc
(boolean preferRestOverGrpc) Deprecated.since 8.5, will be removed in 8.8restAddress
(URI restAddress) useDefaultRetryPolicy
(boolean useDefaultRetryPolicy) If enabled, the client will make use of the default retry policy defined.Use a plaintext connection between the client and the gateway.withChainHandlers
(org.apache.hc.client5.http.async.AsyncExecChainHandler... chainHandler) Custom implementations of the Apache HttpClientAsyncExecChainHandler
middleware API.withInterceptors
(io.grpc.ClientInterceptor... interceptor) Custom implementations of the gRPCClientInterceptor
middleware API.withJsonMapper
(JsonMapper jsonMapper) withProperties
(Properties properties) Sets all the properties from aProperties
object.
-
Method Details
-
withProperties
Sets all the properties from aProperties
object. Can be used to configure the client from a properties file.See
ClientProperties
for valid property names. -
applyEnvironmentVariableOverrides
Allows to disable the mechanism to override some properties by ENVIRONMENT VARIABLES. This is useful if a client shall be constructed for test cases or in an environment that wants to fully control properties (like Spring Boot).The default value is
true
. -
gatewayAddress
Deprecated.since 8.5 for removal with 8.8, replaced bygrpcAddress(URI)
- Parameters:
gatewayAddress
- the IP socket address of a gateway that the client can initially connect to. Must be in formathost:port
. The default value is0.0.0.0:26500
.
-
restAddress
- Parameters:
restAddress
- the REST API address of a gateway that the client can connect to. The default value is0.0.0.0:8080
.
-
grpcAddress
- Parameters:
grpcAddress
- the gRPC address of a gateway that the client can connect to. The default value is0.0.0.0:26500
.
-
defaultTenantId
- Parameters:
tenantId
- the tenant identifier which is used for tenant-aware commands when no tenant identifier is set. The default value isCommandWithTenantStep.DEFAULT_TENANT_IDENTIFIER
.
-
defaultJobWorkerTenantIds
- Parameters:
tenantIds
- the tenant identifiers which are used for job-activation commands when no tenant identifiers are set. The default value contains onlyCommandWithTenantStep.DEFAULT_TENANT_IDENTIFIER
.
-
defaultJobWorkerMaxJobsActive
- Parameters:
maxJobsActive
- Default value forJobWorkerBuilderStep1.JobWorkerBuilderStep3.maxJobsActive(int)
. Default value is 32.
-
numJobWorkerExecutionThreads
- Parameters:
numThreads
- The number of threads for invocation of job workers. Setting this value to 0 effectively disables subscriptions and workers. Default value is 1.
-
jobWorkerExecutor
Identical behavior asjobWorkerExecutor(ScheduledExecutorService,boolean)
, but taking ownership of the executor by default. This means the given executor is closed when the client is closed.- Parameters:
executor
- an executor service to use when invoking job workers- See Also:
-
jobWorkerExecutor
Allows passing a custom executor service that will be shared by all job workers created via this client.Polling and handling jobs (e.g. via
JobHandler
will all be invoked on this executor.When non-null, this setting override
numJobWorkerExecutionThreads(int)
.- Parameters:
executor
- an executor service to use when invoking job workerstakeOwnership
- if true, the executor will be closed when the client is closed. otherwise, it's up to the caller to manage its lifecycle
-
defaultJobWorkerName
The name of the worker which is used when none is set for a job worker. Default is 'default'. -
defaultJobTimeout
The timeout which is used when none is provided for a job worker. Default is 5 minutes. -
defaultJobPollInterval
The interval which a job worker is periodically polling for new jobs. Default is 100 milliseconds. -
defaultMessageTimeToLive
The time-to-live which is used when none is provided for a message. Default is 1 hour. -
defaultRequestTimeout
The request timeout used if not overridden by the command. Default is 10 seconds. -
usePlaintext
ZeebeClientBuilder usePlaintext()Use a plaintext connection between the client and the gateway. -
caCertificatePath
Path to a root CA certificate to be used instead of the certificate in the default default store. -
credentialsProvider
A customCredentialsProvider
which will be used to apply authentication credentials to requests. -
keepAlive
Time interval between keep alive messages sent to the gateway. The default is 45 seconds. -
withInterceptors
Custom implementations of the gRPCClientInterceptor
middleware API. The interceptors will be applied to every gRPC call that the client makes. More details can be found at invalid input: '{@link https://grpc.io/docs/guides/interceptors/'}. -
withChainHandlers
ZeebeClientBuilder withChainHandlers(org.apache.hc.client5.http.async.AsyncExecChainHandler... chainHandler) Custom implementations of the Apache HttpClientAsyncExecChainHandler
middleware API. The middleware implementations will be called on every REST API call that the client makes. -
withJsonMapper
-
overrideAuthority
Overrides the authority used with TLS virtual hosting. Specifically, to override hostname verification in the TLS handshake. It does not change what host is actually connected to.This method is intended for testing, but may safely be used outside of tests as an alternative to DNS overrides.
This setting does nothing if a
plaintext
connection is used.- Parameters:
authority
- The alternative authority to use, commonly in the formhost
orhost:port
-
maxMessageSize
A custom maxMessageSize allows the client to receive larger or smaller responses from Zeebe. Technically, it specifies the maxInboundMessageSize of the gRPC channel. The default is 4194304 = 4MB. -
maxMetadataSize
A custom maxMetadataSize allows the client to receive larger or smaller response headers from Zeebe. Technically, it specifies the maxInboundMetadataSize of the gRPC channel. The default is 16384 = 16KB . -
defaultJobWorkerStreamEnabled
A custom streamEnabled allows the client to use job stream instead of job poll. The default value is set as enabled. -
useDefaultRetryPolicy
If enabled, the client will make use of the default retry policy defined. False by default.NOTE: the default retry policy is taken from the
gateway-service-config.json
in theio.camunda:zeebe-gateway-protocol-impl
JAR. -
preferRestOverGrpc
@ExperimentalApi("https://github.com/camunda/camunda/issues/16166") @Deprecated ZeebeClientBuilder preferRestOverGrpc(boolean preferRestOverGrpc) Deprecated.since 8.5, will be removed in 8.8If true, will prefer to use REST over gRPC for calls which can be done over both REST and gRPC. This is an experimental API which is present while we migrate the bulk of the API from gRPC to REST. Once done, this will also be removed.NOTE: not all calls can be done over REST (or HTTP/1) yet, this is also subject to change.
- Parameters:
preferRestOverGrpc
- if true, the client will use REST instead of gRPC whenever possible- Returns:
- this builder for chaining
-
build
ZeebeClient build()- Returns:
- a new
ZeebeClient
with the provided configuration options.
-
grpcAddress(URI)