temporal-sdk-core 0.1.0-alpha.1

Library for building new Temporal SDKs
Documentation
syntax = "proto3";

/**
 * Definitions of the different activity tasks returned from [crate::Core::poll_task].
 */
package coresdk.activity_task;

import "common.proto";

import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";

message ActivityTask {
    // A unique identifier for this task
    bytes task_token = 1;
    string activity_id = 2;
    oneof variant {
        // Start activity execution.
        Start start = 3;
        // Attempt to cancel activity execution.
        Cancel cancel = 4;
    }
}

/// Begin executing an activity
message Start {
    string workflow_namespace = 1;
    /// The workflow's type name or function identifier
    string workflow_type = 2;
    common.WorkflowExecution workflow_execution = 3;
    /// The activity's type name or function identifier
    string activity_type = 4;
    map<string, common.Payload> header_fields = 5;
    /// Arguments to the activity
    repeated common.Payload input = 6;
    repeated common.Payload heartbeat_details = 7;

    google.protobuf.Timestamp scheduled_time = 8;
    google.protobuf.Timestamp current_attempt_scheduled_time = 9;
    google.protobuf.Timestamp started_time = 10;
    int32 attempt = 11;

    google.protobuf.Duration schedule_to_close_timeout = 12;
    google.protobuf.Duration start_to_close_timeout = 13;
    google.protobuf.Duration heartbeat_timeout = 14;
    /// This is an actual retry policy the service uses. It can be different from the one provided
    /// (or not) during activity scheduling as the service can override the provided one in case its
    /// values are not specified or exceed configured system limits.
    common.RetryPolicy retry_policy = 15;
}

/// Attempt to cancel a running activity
message Cancel {
    // TODO: add attributes
}