diff --git a/dev/restate/service/protocol.proto b/dev/restate/service/protocol.proto index 9e68455..a2ce02e 100644 --- a/dev/restate/service/protocol.proto +++ b/dev/restate/service/protocol.proto @@ -157,6 +157,20 @@ message ClearStateEntryMessage { message ClearAllStateEntryMessage { } +// Completable: Yes +// Fallible: No +// Type: 0x0800 + 4 +message GetStateKeysEntryMessage { + message StateKeys { + repeated bytes keys = 1; + } + + oneof result { + StateKeys value = 14; + Failure failure = 15; + }; +} + // ------ Syscalls ------ // Completable: Yes diff --git a/service-invocation-protocol.md b/service-invocation-protocol.md index 16b7715..d592ad0 100644 --- a/service-invocation-protocol.md +++ b/service-invocation-protocol.md @@ -284,6 +284,7 @@ descriptions in [`protocol.proto`](dev/restate/service/protocol.proto). | ------------------------------- | -------- | ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PollInputStreamEntryMessage` | `0x0400` | Yes | No | Carries the invocation input message(s) of the invocation. Note: currently the runtime always sends this entry completed, but this may change in future. | | `GetStateEntryMessage` | `0x0800` | Yes | No | Get the value of a service instance state key. | +| `GetStateKeysEntryMessage` | `0x0804` | Yes | No | Get all the known state keys for this service instance. Note: the completion value for this message is a protobuf of type `GetStateKeysEntryMessage.StateKeys`. | | `SleepEntryMessage` | `0x0C00` | Yes | No | Initiate a timer that completes after the given time. | | `InvokeEntryMessage` | `0x0C01` | Yes | Yes | Invoke another Restate service. | | `AwakeableEntryMessage` | `0x0C03` | Yes | No | Arbitrary result container which can be completed from another service, given a specific id. See [Awakeable identifier](#awakeable-identifier) for more details. |