syntax = "proto3"; message Arg { uint64 objectid = 1; // The objectid for the argument. string serialized_arg = 2; // A serialized representation of an argument passed by value. } message Task { string name = 1; // Name of the function call. Must not be empty. repeated Arg arg = 2; // List of object IDs of the arguments to the function. repeated uint64 result = 3; // Object IDs for result } message Put { uint64 objectid = 1; // The objectid for the object that was put } message Get { uint64 objectid = 1; // The objectid for the object that is retrieved } // This is used internally by the scheduler. From the scheduler's perspective, // the submission of tasks (via SubmitTask) and the submission of puts (via // PutObj) look very similar, and so it is useful to be able to handle them // together (for example in the computation graph). message Operation { Task task = 1; Put put = 2; Get get = 4; uint64 creator_operationid = 3; // The id of the task that called this task or put. } message TaskStatus { uint64 operationid = 1; string function_name = 2; string worker_address = 3; string error_message = 4; } message CompGraph { repeated Operation operation = 1; }