syntax = "proto3";
import "google/protobuf/empty.proto";
package sideinput.v1;
// SideInput is the gRPC service for user-defined Side Inputs.
// It is used to propagate changes in the values of the provided Side Inputs
// which allows access to slow updated data or configuration without needing to retrieve
// it during each message processing.
// Through this service we should should be able to:-
// (1) Invoke retrieval request for a single Side Input parameter, which in turn should check for updates and return its latest value.
// (2) Provide a health check endpoint to indicate whether the service is ready to be used.
service SideInput {
// RetrieveSideInput is the endpoint to retrieve the latest value of a given Side Input.
rpc RetrieveSideInput(google.protobuf.Empty) returns (SideInputResponse);
// IsReady is the health check endpoint to indicate whether the service is ready to be used.
rpc IsReady(google.protobuf.Empty) returns (ReadyResponse);
}
// SideInputResponse represents a response to a given side input retrieval request.
message SideInputResponse {
// value represents the latest value of the side input payload
bytes value = 1;
// noBroadcast indicates whether the side input value should be broadcasted to all
// True if value should not be broadcasted
// False if value should be broadcasted
bool no_broadcast = 2;
}
// ReadyResponse is the health check result.
message ReadyResponse {
bool ready = 1;
}