Class RestateComponentsProperties

java.lang.Object
dev.restate.sdk.springboot.RestateComponentsProperties

@ConfigurationProperties(prefix="restate") public class RestateComponentsProperties extends Object
Properties for configuring Restate services.

Top-level fields (e.g. restate.inactivity-timeout) act as defaults applied to all services. Per-service configuration in getComponents() takes precedence over these defaults.

Example configuration in application.properties:


 # Default configuration applied to all services
 restate.executor=myGlobalExecutor
 restate.inactivity-timeout=10m
 restate.retry-policy.max-attempts=5

 # Per-service configuration (overrides defaults)
 restate.components.MyService.executor=myServiceExecutor
 restate.components.MyService.inactivity-timeout=5m
 restate.components.MyService.abort-timeout=1m
 restate.components.MyService.idempotency-retention=1d
 restate.components.MyService.journal-retention=7d
 restate.components.MyService.ingress-private=false
 restate.components.MyService.enable-lazy-state=true
 restate.components.MyService.documentation=My service description
 restate.components.MyService.metadata.version=1.0
 restate.components.MyService.metadata.team=platform
 restate.components.MyService.retry-policy.initial-interval=100ms
 restate.components.MyService.retry-policy.exponentiation-factor=2.0
 restate.components.MyService.retry-policy.max-interval=10s
 restate.components.MyService.retry-policy.max-attempts=10
 restate.components.MyService.retry-policy.on-max-attempts=PAUSE

 # Per-handler configuration
 restate.components.MyService.handlers.myHandler.inactivity-timeout=5m
 restate.components.MyService.handlers.myHandler.ingress-private=true
 restate.components.MyService.handlers.myHandler.documentation=Handler description
 restate.components.MyService.handlers.myWorkflowHandler.workflow-retention=30d
 
  • Constructor Details

    • RestateComponentsProperties

      public RestateComponentsProperties()
  • Method Details

    • getExecutor

      public @Nullable String getExecutor()
      Name of the Executor bean to use for running handlers of all services. Can be overridden per-service in getComponents().

      NOTE: This option is only used for Java services, not Kotlin services.

      If not specified, virtual threads are used for Java >= 21, otherwise Executors.newCachedThreadPool() is used. See HandlerRunner.Options.withExecutor() for more details.

    • setExecutor

      public void setExecutor(@Nullable String executor)
      Name of the Executor bean to use for running handlers of all services. Can be overridden per-service in getComponents().

      NOTE: This option is only used for Java services, not Kotlin services.

      If not specified, virtual threads are used for Java >= 21, otherwise Executors.newCachedThreadPool() is used. See HandlerRunner.Options.withExecutor() for more details.

    • getDocumentation

      public @Nullable String getDocumentation()
      Default documentation for all services, as shown in the UI, Admin REST API, and the generated OpenAPI documentation. Can be overridden per-service in getComponents().
    • setDocumentation

      public void setDocumentation(@Nullable String documentation)
      Default documentation for all services, as shown in the UI, Admin REST API, and the generated OpenAPI documentation. Can be overridden per-service in getComponents().
    • getMetadata

      public @Nullable Map<String,String> getMetadata()
      Default metadata for all services, as propagated in the Admin REST API. Can be overridden per-service in getComponents().
    • setMetadata

      public void setMetadata(@Nullable Map<String,String> metadata)
      Default metadata for all services, as propagated in the Admin REST API. Can be overridden per-service in getComponents().
    • getInactivityTimeout

      public @Nullable Duration getInactivityTimeout()
      Default inactivity timeout for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setInactivityTimeout

      public void setInactivityTimeout(@Nullable Duration inactivityTimeout)
      Default inactivity timeout for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getAbortTimeout

      public @Nullable Duration getAbortTimeout()
      Default abort timeout for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setAbortTimeout

      public void setAbortTimeout(@Nullable Duration abortTimeout)
      Default abort timeout for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getIdempotencyRetention

      public @Nullable Duration getIdempotencyRetention()
      Default idempotency retention for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setIdempotencyRetention

      public void setIdempotencyRetention(@Nullable Duration idempotencyRetention)
      Default idempotency retention for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getWorkflowRetention

      public @Nullable Duration getWorkflowRetention()
      Default workflow retention for all workflow services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setWorkflowRetention

      public void setWorkflowRetention(@Nullable Duration workflowRetention)
      Default workflow retention for all workflow services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getJournalRetention

      public @Nullable Duration getJournalRetention()
      Default journal retention for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setJournalRetention

      public void setJournalRetention(@Nullable Duration journalRetention)
      Default journal retention for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getIngressPrivate

      public @Nullable Boolean getIngressPrivate()
      Default ingress-private setting for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setIngressPrivate

      public void setIngressPrivate(@Nullable Boolean ingressPrivate)
      Default ingress-private setting for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getEnableLazyState

      public @Nullable Boolean getEnableLazyState()
      Default lazy-state setting for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

      See Also:
    • setEnableLazyState

      public void setEnableLazyState(@Nullable Boolean enableLazyState)
      Default lazy-state setting for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.4, otherwise service discovery will fail.

    • getRetryPolicy

      public @Nullable RetryPolicyProperties getRetryPolicy()
      Default retry policy for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.5, otherwise service discovery will fail.

      See Also:
    • setRetryPolicy

      public void setRetryPolicy(@Nullable RetryPolicyProperties retryPolicy)
      Default retry policy for all services. Can be overridden per-service in getComponents().

      NOTE: You can set this field only if you register services against restate-server >= 1.5, otherwise service discovery will fail.

    • getComponents

      public Map<String,RestateComponentProperties> getComponents()
      Per-component configuration, keyed by component/service name. Overrides any top-level defaults.

      Example configuration in application.properties:

       restate.components.MyService.inactivity-timeout=10m
       restate.components.MyService.handlers.myHandler.ingress-private=true
       
    • setComponents

      public void setComponents(Map<String,RestateComponentProperties> components)
      Per-component configuration, keyed by component/service name. Overrides any top-level defaults.

      Example configuration in application.properties:

       restate.components.MyService.inactivity-timeout=10m
       restate.components.MyService.handlers.myHandler.ingress-private=true