Skip to main content

Configuration

Restate has a wide range of configuration options to tune it according to your needs.

Configuration file​

Restate accepts a YAML configuration file that can be specified either providing the command line option --config-file <PATH> or setting the environment variable RESTATE_CONFIG=<PATH>. If not set, Restate will try to read restate.yaml in your current working directory and, if not found, the default configuration will be applied.

Overriding configuration entries with environment variables​

Restate supports overriding every configuration entry with an environment variable, to quickly override specific configuration entries without touching the provided configuration file. To do that, the following rule applies:

  • Prefix the configuration entry key with RESTATE_
  • Separate every nested struct with __ (double underscore).

For example, to override the admin.bind_address, the corresponding environment variable is RESTATE_ADMIN__BIND_ADDRESS.

Default configuration​

shutdown_grace_period: 1m
observability:
tracing: null
log:
filter: warn,restate=info
format: Pretty
disable_ansi_codes: false
tokio_runtime:
worker_threads: null
max_blocking_threads: null
node_name: LocalNode
node_id: null
meta:
storage_path: target/meta/
service_client:
http:
keep_alive_options:
interval: 40s
timeout: 20s
proxy_uri: null
lambda:
aws_profile: null
assume_role_external_id: null
worker:
channel_size: 64
timers:
num_timers_in_memory_limit: 1024
storage_query_datafusion:
memory_limit: null
temp_folder: null
query_parallelism: null
storage_query_postgres:
bind_address: 0.0.0.0:9071
storage_rocksdb:
path: target/db/
threads: 10
write_buffer_size: 0
max_total_wal_size: 2147483648
cache_size: 0
disable_statistics: false
ingress_grpc:
bind_address: 0.0.0.0:8080
concurrency_limit: 10000000
json:
deserialize_deny_unknown_fields: true
serialize_stringify_64_bit_integers: true
serialize_use_enum_numbers: false
serialize_use_proto_field_name: false
serialize_skip_default_fields: false
kafka:
clusters: {}
invoker:
retry_policy:
type: Exponential
initial_interval: 50ms
factor: 2.0
max_attempts: 18446744073709551615
max_interval: 10s
inactivity_timeout: 1m
abort_timeout: 1m
message_size_warning: 10485760
message_size_limit: null
tmp_dir: /var/folders/tw/68_ctnh50rn41q721zt5pwfc0000gn/T/invoker-018e5c9948497714a7a15271dc469905
concurrency_limit: null
service_client:
http:
keep_alive_options:
interval: 40s
timeout: 20s
proxy_uri: null
lambda:
aws_profile: null
assume_role_external_id: null
disable_eager_state: false
partition_processor:
max_batch_duration: 50ms
partitions: 1024
server:
bind_address: 0.0.0.0:5122
histogram_inactivity_timeout: null
disable_prometheus: false
admin:
bind_address: 0.0.0.0:9070
concurrency_limit: 1000
bifrost:
default_provider: File
providers_config:
File:
path: target/logs/
cluster_controller: {}
roles:
- Worker
- ClusterController
cluster_controller_address: ''

Configuration schema​

Loading ....