Skip to content

Commit

Permalink
Update documentation:
Browse files Browse the repository at this point in the history
* Bump Restate to 0.7.0
* Bump SDK-Typescript to 0.7.0
* Bump SDK-Java to 0.7.0
* Bump Tour of Restate to 0.7.0
  • Loading branch information
tillrohrmann committed Jan 15, 2024
1 parent f24f01e commit 46c8177
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 84 deletions.
37 changes: 19 additions & 18 deletions docs/references/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,38 +53,39 @@ message GreetingRequest {

## META0003

Cannot reach the endpoint to execute service discovery. Make sure:
Cannot reach the service deployment to execute service discovery. Make sure:

* The provided `uri` is correct
* The service endpoint is up and running
* The Restate runtime can reach the service endpoint through the configured `uri`
* The provided `URI`/`ARN` is correct
* The deployment is up and running
* Restate can reach the deployment through the configured `URI`/`ARN`
* If additional authentication is required, make sure it's configured through `additional_headers`

## META0004

Cannot register the provided service endpoint, because it conflicts with the uri of an already registered service endpoint.
Cannot register the provided deployment, because it conflicts with the uri of an already registered deployment.

In Restate service endpoints have a unique uri and are immutable, thus it's not possible to discover the same endpoint uri twice.
Make sure, when updating a service endpoint, to assign it a new uri.
In Restate deployments have a unique uri/arn and are immutable, thus it's not possible to discover the same deployment twice.
Make sure, when updating a deployment, to assign it a new uri/arn.

You can force the override using the `"force": true` field in the discover request, but beware that this can lead in-flight invocations to an unrecoverable error state.

See the [versioning documentation](https://docs.restate.dev/services/upgrades-removal) for more information.

## META0005

Cannot propagate endpoint/service metadata to Restate components. If you see this error when starting Restate, this might indicate a corrupted Meta storage.
Cannot propagate deployment/service metadata to Restate components. If you see this error when starting Restate, this might indicate a corrupted Meta storage.

We recommend wiping the Meta storage and recreate it by registering endpoints in the same order they were registered before.
We recommend wiping the Meta storage and recreating it by registering deployments in the same order they were registered before.

## META0006

Cannot register the newly discovered service revision in the provided service endpoint, because it conflicts with an already existing service revision.
Cannot register the newly discovered service revision in the provided deployment, because it conflicts with an already existing service revision.

When implementing a new service revision, make sure that:

* The service instance type and the key definition, if any, is exactly the same as of the previous revisions.
* The service instance type and the key definition, if any, are exactly the same as of the previous revisions.
* The Protobuf contract and message definitions are backward compatible.
* The new revision must implement all the methods of the previous revisions.

See the [versioning documentation](https://docs.restate.dev/services/upgrades-removal) for more information.

Expand Down Expand Up @@ -113,7 +114,7 @@ Please look at the [Kafka documentation page](https://docs.restate.dev/services/

## RT0001

The invocation response stream was aborted due to the timeout configured in `worker.invoker.response_abort_timeout`.
The invocation response stream was aborted due to the timeout configured in `worker.invoker.abort_timeout`.
This timeout is fired when Restate has an open invocation, and it's waiting only for response messages, but no message is seen for the configured time.

Suggestions:
Expand All @@ -129,7 +130,7 @@ For a complete list of configuration options, and a sample configuration, check

## RT0003

The invocation failed because the invoker received a message from a service endpoint larger than the `worker.invoker.message_size_limit`.
The invocation failed because Restate received a message from a service larger than the `worker.invoker.message_size_limit`.

Suggestions:

Expand Down Expand Up @@ -159,22 +160,22 @@ Suggestions:

## RT0006

An error occurred while invoking the service endpoint.
An error occurred while invoking the service deployment.
This is a generic error which can be caused by many reasons, including:

* Transient network or storage errors
* Misconfiguration of the service endpoint and/or of the Restate runtime
* Misconfiguration of the deployment and/or of the Restate runtime
* Non-deterministic user code execution
* Restate runtime and/or SDK bug

We suggest checking the service endpoint logs as well to get any hint on the error cause.
We suggest checking the service and/or deployment logs as well to get any hint on the error cause.

## RT0007

A retry-able error was received from the service endpoint while processing the invocation.
A retry-able error was received from the service deployment while processing the invocation.

Suggestions:

* Check the service endpoint logs to get more info about the error cause, like the stacktrace.
* Check the service/deployment logs to get more info about the error cause, like the stacktrace.
* Look at the https://docs.restate.dev/services/sdk/error-handling for more info about error handling in services.

8 changes: 4 additions & 4 deletions restate.config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"RESTATE_VERSION": "0.6",
"TYPESCRIPT_SDK_VERSION": "0.6.0",
"JAVA_SDK_VERSION": "0.0.1-SNAPSHOT",
"TOUR_VERSION": "0.6.0"
"RESTATE_VERSION": "0.7",
"TYPESCRIPT_SDK_VERSION": "0.7.0",
"JAVA_SDK_VERSION": "0.7.0",
"TOUR_VERSION": "0.7.0"
}
146 changes: 91 additions & 55 deletions static/schemas/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
},
"meta": {
"default": {
"rest_address": "0.0.0.0:9070",
"rest_concurrency_limit": 1000,
"service_client": {
"http": {
"keep_alive_options": {
Expand Down Expand Up @@ -83,21 +81,20 @@
"aws_profile": null
}
},
"tmp_dir": "/tmp/invoker-018c643db86e77aabbf01537673fc85a"
"tmp_dir": "/tmp/invoker-018d0f34591972a0af655e981a8a1cdd"
},
"kafka": {
"clusters": {}
},
"partition_processor": {
"max_batch_duration": "50ms"
},
"partitions": 1024,
"storage_query_datafusion": {
"memory_limit": null,
"query_parallelism": null,
"temp_folder": null
},
"storage_query_http": {
"http_address": "0.0.0.0:9072",
"http_concurrency_limit": 1000
},
"storage_query_postgres": {
"bind_address": "0.0.0.0:9071"
},
Expand All @@ -114,6 +111,21 @@
},
"$ref": "#/definitions/WorkerOptions"
},
"node_ctrl": {
"default": {
"bind_address": "0.0.0.0:5122",
"disable_prometheus": false,
"histogram_inactivity_timeout": null
},
"$ref": "#/definitions/NodeCtrlOptions"
},
"admin": {
"default": {
"bind_address": "0.0.0.0:9070",
"concurrency_limit": 1000
},
"$ref": "#/definitions/AdminOptions"
},
"tokio_runtime": {
"default": {
"max_blocking_threads": null,
Expand Down Expand Up @@ -236,20 +248,6 @@
"title": "Meta options",
"type": "object",
"properties": {
"rest_address": {
"title": "Rest endpoint address",
"description": "Address to bind for the Meta Operational REST APIs.",
"default": "0.0.0.0:9070",
"type": "string"
},
"rest_concurrency_limit": {
"title": "Rest concurrency limit",
"description": "Concurrency limit for the Meta Operational REST APIs.",
"default": 1000,
"type": "integer",
"format": "uint",
"minimum": 0.0
},
"storage_path": {
"title": "Storage path",
"description": "Root path for Meta storage.",
Expand Down Expand Up @@ -319,7 +317,7 @@
},
"proxy_uri": {
"title": "Proxy URI",
"description": "A URI, such as `http://127.0.0.1:10001`, of a server to which all invocations should be sent, with the `Host` header set to the service endpoint URI. HTTPS proxy URIs are supported, but only HTTP endpoint traffic will be proxied currently. Can be overridden by the `HTTP_PROXY` environment variable.",
"description": "A URI, such as `http://127.0.0.1:10001`, of a server to which all invocations should be sent, with the `Host` header set to the deployment URI. HTTPS proxy URIs are supported, but only HTTP endpoint traffic will be proxied currently. Can be overridden by the `HTTP_PROXY` environment variable.",
"default": null,
"type": [
"string",
Expand All @@ -330,12 +328,12 @@
},
"Http2KeepAliveOptions": {
"title": "HTTP/2 Keep alive options",
"description": "Configuration for the HTTP/2 keep-alive mechanism, using PING frames.\n\nPlease note: most gateways don't propagate the HTTP/2 keep-alive between downstream and upstream hosts. In those environments, you need to make sure the gateway can detect a broken connection to the upstream service endpoint(s).",
"description": "Configuration for the HTTP/2 keep-alive mechanism, using PING frames.\n\nPlease note: most gateways don't propagate the HTTP/2 keep-alive between downstream and upstream hosts. In those environments, you need to make sure the gateway can detect a broken connection to the upstream deployment(s).",
"type": "object",
"properties": {
"interval": {
"title": "HTTP/2 Keep-alive interval",
"description": "Sets an interval for HTTP/2 PING frames should be sent to keep a connection alive.\n\nYou should set this timeout with a value lower than the `response_abort_timeout`.",
"description": "Sets an interval for HTTP/2 PING frames should be sent to keep a connection alive.\n\nYou should set this timeout with a value lower than the `abort_timeout`.",
"default": "40s",
"type": "string"
},
Expand Down Expand Up @@ -396,13 +394,6 @@
},
"$ref": "#/definitions/StorageQueryDatafusionOptions"
},
"storage_query_http": {
"default": {
"http_address": "0.0.0.0:9072",
"http_concurrency_limit": 1000
},
"$ref": "#/definitions/StorageQueryHttpOptions"
},
"storage_query_postgres": {
"default": {
"bind_address": "0.0.0.0:9071"
Expand Down Expand Up @@ -467,10 +458,16 @@
"aws_profile": null
}
},
"tmp_dir": "/tmp/invoker-018c643db86f74ce922f05651d8051e9"
"tmp_dir": "/tmp/invoker-018d0f3459197d0e93a65ffc9db55665"
},
"$ref": "#/definitions/InvokerOptions"
},
"partition_processor": {
"default": {
"max_batch_duration": "50ms"
},
"$ref": "#/definitions/PartitionProcessorOptions"
},
"partitions": {
"title": "Partitions",
"description": "Number of partitions to be used to process messages.\n\nNote: This config entry **will be removed** in future Restate releases, as the partitions number will be dynamically configured depending on the load.",
Expand Down Expand Up @@ -535,26 +532,6 @@
}
}
},
"StorageQueryHttpOptions": {
"title": "Storage query http options",
"type": "object",
"properties": {
"http_address": {
"title": "Rest endpoint address",
"description": "Address to bind for the Storage HTTP APIs.",
"default": "0.0.0.0:9072",
"type": "string"
},
"http_concurrency_limit": {
"title": "Rest concurrency limit",
"description": "Concurrency limit for the Storage HTTP APIs.",
"default": 1000,
"type": "integer",
"format": "uint",
"minimum": 0.0
}
}
},
"StorageQueryPostgresOptions": {
"title": "Storage query postgres options",
"type": "object",
Expand Down Expand Up @@ -741,15 +718,15 @@
},
"message_size_warning": {
"title": "Message size warning",
"description": "Threshold to log a warning in case protocol messages coming from service endpoint are larger than the specified amount.",
"description": "Threshold to log a warning in case protocol messages coming from a service are larger than the specified amount.",
"default": 10485760,
"type": "integer",
"format": "uint",
"minimum": 0.0
},
"message_size_limit": {
"title": "Message size limit",
"description": "Threshold to fail the invocation in case protocol messages coming from service endpoint are larger than the specified amount.",
"description": "Threshold to fail the invocation in case protocol messages coming from a service are larger than the specified amount.",
"default": null,
"type": [
"integer",
Expand All @@ -761,7 +738,7 @@
"tmp_dir": {
"title": "Temporary directory",
"description": "Temporary directory to use for the invoker temporary files. If empty, the system temporary directory will be used instead.",
"default": "/tmp/invoker-018c643db86f7855b8a3c1cee7a6fa91",
"default": "/tmp/invoker-018d0f345919743096f476d6429402d1",
"type": "string"
},
"concurrency_limit": {
Expand Down Expand Up @@ -890,6 +867,65 @@
}
]
},
"PartitionProcessorOptions": {
"description": "Partition processor options",
"type": "object",
"properties": {
"max_batch_duration": {
"title": "Maximum batch duration",
"description": "The maximum duration the partition processor can spend on batching commands before checking for signals from its actuators. The larger the value, the fewer disk writes are being performed which can improve overall throughput at the cost of potentially longer invocation latencies.",
"default": "50ms",
"type": [
"string",
"null"
]
}
}
},
"NodeCtrlOptions": {
"title": "Node ctrl service options",
"type": "object",
"properties": {
"bind_address": {
"description": "Address to bind for the Node ctrl Service.",
"default": "0.0.0.0:5122",
"type": "string"
},
"histogram_inactivity_timeout": {
"description": "Timeout for idle histograms.\n\nThe duration after which a histogram is considered idle and will be removed from metric responses to save memory. Unsetting means that histograms will never be removed.",
"default": null,
"type": [
"string",
"null"
]
},
"disable_prometheus": {
"description": "Disable prometheus metric recording and reporting. Default is `false`.",
"default": false,
"type": "boolean"
}
}
},
"AdminOptions": {
"title": "Admin server options",
"type": "object",
"properties": {
"bind_address": {
"title": "Endpoint address",
"description": "Address to bind for the Admin APIs.",
"default": "0.0.0.0:9070",
"type": "string"
},
"concurrency_limit": {
"title": "Concurrency limit",
"description": "Concurrency limit for the Admin APIs.",
"default": 1000,
"type": "integer",
"format": "uint",
"minimum": 0.0
}
}
},
"Options": {
"title": "Runtime options",
"description": "Configuration for the Tokio runtime used by Restate.",
Expand Down
2 changes: 1 addition & 1 deletion static/schemas/openapi-admin.json

Large diffs are not rendered by default.

Loading

0 comments on commit 46c8177

Please sign in to comment.