Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions src/proto/FunctionRpc.proto
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,21 @@ message StreamingMessage {
oneof content {

// Worker initiates stream
StartStream start_stream = 20;
StartStream start_stream = 20;

// Host sends capabilities/init data to worker
WorkerInitRequest worker_init_request = 17;
// Worker responds after initializing with its capabilities & status
WorkerInitResponse worker_init_response = 16;

// Worker periodically sends empty heartbeat message to host
WorkerHeartbeat worker_heartbeat = 15;

// Host sends terminate message to worker.
// Worker terminates if it can, otherwise host terminates after a grace period
WorkerTerminate worker_terminate = 14;

// Host periodically sends status request to the worker
// Add any worker relevant status to response
WorkerStatusRequest worker_status_request = 12;
WorkerStatusResponse worker_status_response = 13;

Expand All @@ -46,25 +49,25 @@ message StreamingMessage {

// Worker requests a desired action (restart worker, reload function)
WorkerActionResponse worker_action_response = 7;

// Host sends required metadata to worker to load function
FunctionLoadRequest function_load_request = 8;
// Worker responds after loading with the load result
FunctionLoadResponse function_load_response = 9;

// Host requests a given invocation
InvocationRequest invocation_request = 4;

// Worker responds to a given invocation
InvocationResponse invocation_response = 5;

// Host sends cancel message to attempt to cancel an invocation.
// Host sends cancel message to attempt to cancel an invocation.
// If an invocation is cancelled, host will receive an invocation response with status cancelled.
InvocationCancel invocation_cancel = 21;

// Worker logs a message back to the host
RpcLog rpc_log = 2;

FunctionEnvironmentReloadRequest function_environment_reload_request = 25;

FunctionEnvironmentReloadResponse function_environment_reload_response = 26;
Expand All @@ -88,15 +91,15 @@ message StreamingMessage {
// Process.Start required info
// connection details
// protocol type
// protocol version
// protocol version

// Worker sends the host information identifying itself
message StartStream {
// id of the worker
string worker_id = 2;
}

// Host requests the worker to initialize itself
// Host requests the worker to initialize itself
message WorkerInitRequest {
// version of the host sending init request
string host_version = 1;
Expand Down Expand Up @@ -147,6 +150,11 @@ message StatusResult {
repeated RpcLog logs = 3;
}

// TODO: investigate grpc heartbeat - don't limit to grpc implemention

// Message is empty by design - Will add more fields in future if needed
message WorkerHeartbeat {}

// Warning before killing the process after grace_period
// Worker self terminates ..no response on this
message WorkerTerminate {
Expand Down Expand Up @@ -177,25 +185,24 @@ message FileChangeEventRequest {

// Indicates whether worker reloaded successfully or needs a restart
message WorkerActionResponse {
// indicates whether a restart is needed, or reload successfully
// indicates whether a restart is needed, or reload succesfully
enum Action {
Restart = 0;
Reload = 1;
}

// action for this response
Action action = 1;

// text reason for the response
string reason = 2;
}

// Used by the host to determine worker health
message WorkerStatusRequest {
// NOT USED
message WorkerStatusRequest{
}

// Worker responds with status message
// TODO: Add any worker relevant status to response
// NOT USED
message WorkerStatusResponse {
}

Expand Down Expand Up @@ -264,7 +271,7 @@ message RpcFunctionMetadata {

// base directory for the Function
string directory = 1;

// Script file specified
string script_file = 2;

Expand Down Expand Up @@ -485,7 +492,7 @@ message BindingInfo {
DataType data_type = 4;
}

// Used to send logs back to the Host
// Used to send logs back to the Host
message RpcLog {
// Matching ILogger semantics
// https://github.com/aspnet/Logging/blob/9506ccc3f3491488fe88010ef8b9eb64594abf95/src/Microsoft.Extensions.Logging/Logger.cs
Expand Down Expand Up @@ -536,7 +543,7 @@ message RpcLog {
map<string, TypedData> propertiesMap = 9;
}

// Encapsulates an Exception
// Encapsulates an Exception
message RpcException {
// Source of the exception
string source = 3;
Expand Down Expand Up @@ -598,7 +605,7 @@ message RpcHttpCookie {
// TODO - solidify this or remove it
message RpcHttp {
string method = 1;
string url = 2;
string url = 2;
map<string,string> headers = 3;
TypedData body = 4;
map<string,string> params = 10;
Expand Down