persistence

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2019 License: MIT Imports: 12 Imported by: 35

Documentation

Index

Constants

View Source
const (
	// this is a temp version indicating where is the domain resides
	// either V1 or V2
	DomainTableVersionV1 = 1
	DomainTableVersionV2 = 2

	// 0/1 or empty are all considered as V1
	EventStoreVersionV2 = 2
)

TODO remove this table version

View Source
const (
	DomainStatusRegistered = iota
	DomainStatusDeprecated
	DomainStatusDeleted
)

Domain status

View Source
const (
	// Fail if current record exists
	// Only applicable for CreateWorkflowExecution
	CreateWorkflowModeBrandNew = iota
	// Update current record only if workflow is closed
	// Only applicable for CreateWorkflowExecution
	CreateWorkflowModeWorkflowIDReuse
	// Update current record only if workflow is open
	// Only applicable for UpdateWorkflowExecution
	CreateWorkflowModeContinueAsNew
)

Create Workflow Execution Mode

View Source
const (
	WorkflowStateCreated = iota
	WorkflowStateRunning
	WorkflowStateCompleted
)

Workflow execution states

View Source
const (
	WorkflowCloseStatusNone = iota
	WorkflowCloseStatusCompleted
	WorkflowCloseStatusFailed
	WorkflowCloseStatusCanceled
	WorkflowCloseStatusTerminated
	WorkflowCloseStatusContinuedAsNew
	WorkflowCloseStatusTimedOut
)

Workflow execution close status

View Source
const (
	TaskListTypeDecision = iota
	TaskListTypeActivity
)

Types of task lists

View Source
const (
	TaskListKindNormal = iota
	TaskListKindSticky
)

Kinds of task lists

View Source
const (
	TransferTaskTypeDecisionTask = iota
	TransferTaskTypeActivityTask
	TransferTaskTypeCloseExecution
	TransferTaskTypeCancelExecution
	TransferTaskTypeStartChildExecution
	TransferTaskTypeSignalExecution
)

Transfer task types

View Source
const (
	ReplicationTaskTypeHistory = iota
	ReplicationTaskTypeSyncActivity
)

Types of replication tasks

View Source
const (
	TaskTypeDecisionTimeout = iota
	TaskTypeActivityTimeout
	TaskTypeUserTimer
	TaskTypeWorkflowTimeout
	TaskTypeDeleteHistoryEvent
	TaskTypeActivityRetryTimer
	TaskTypeWorkflowBackoffTimer
)

Types of timers

View Source
const (
	WorkflowBackoffTimeoutTypeRetry = iota
	WorkflowBackoffTimeoutTypeCron
)

Types of workflow backoff timeout

View Source
const (
	// InitialFailoverNotificationVersion is the initial failover version for a domain
	InitialFailoverNotificationVersion int64 = 0

	// TransferTaskTransferTargetWorkflowID is the the dummy workflow ID for transfer tasks of types
	// that do not have a target workflow
	TransferTaskTransferTargetWorkflowID = "20000000-0000-f000-f000-000000000001"
	// TransferTaskTransferTargetRunID is the the dummy run ID for transfer tasks of types
	// that do not have a target workflow
	TransferTaskTransferTargetRunID = "30000000-0000-f000-f000-000000000002"
)

Variables

View Source
var (
	// ErrPersistenceLimitExceeded is the error indicating QPS limit reached.
	ErrPersistenceLimitExceeded = &workflow.ServiceBusyError{Message: "Persistence Max QPS Reached."}
	// ErrPersistenceLimitExceededForList is the error indicating QPS limit reached for list visibility.
	ErrPersistenceLimitExceededForList = &workflow.ServiceBusyError{Message: "Persistence Max QPS Reached for List Operations."}
)

Functions

func DBTimestampToUnixNano added in v0.4.0

func DBTimestampToUnixNano(milliseconds int64) int64

DBTimestampToUnixNano converts CQL timestamp to UnixNano

func FromDataBlob added in v0.4.0

func FromDataBlob(blob *DataBlob) ([]byte, string)

FromDataBlob decodes a datablob into a (payload, encodingType) tuple

func GetOrUseDefaultActiveCluster added in v0.3.7

func GetOrUseDefaultActiveCluster(currentClusterName string, activeClusterName string) string

GetOrUseDefaultActiveCluster return the current cluster name or use the input if valid

func NewHistoryBranchToken added in v0.5.0

func NewHistoryBranchToken(treeID string) ([]byte, error)

NewHistoryBranchToken return a new branch token

func NewUnknownEncodingTypeError

func NewUnknownEncodingTypeError(encodingType common.EncodingType) error

NewUnknownEncodingTypeError returns a new instance of encoding type error

func SerializeClusterConfigs added in v0.4.0

func SerializeClusterConfigs(replicationConfigs []*ClusterReplicationConfig) []map[string]interface{}

SerializeClusterConfigs makes an array of *ClusterReplicationConfig serializable by flattening them into map[string]interface{}

func UnixNanoToDBTimestamp added in v0.4.0

func UnixNanoToDBTimestamp(timestamp int64) int64

UnixNanoToDBTimestamp converts UnixNano to CQL timestamp

Types

type ActivityInfo

type ActivityInfo struct {
	Version                  int64
	ScheduleID               int64
	ScheduledEvent           *workflow.HistoryEvent
	ScheduledTime            time.Time
	StartedID                int64
	StartedEvent             *workflow.HistoryEvent
	StartedTime              time.Time
	ActivityID               string
	RequestID                string
	Details                  []byte
	ScheduleToStartTimeout   int32
	ScheduleToCloseTimeout   int32
	StartToCloseTimeout      int32
	HeartbeatTimeout         int32
	CancelRequested          bool
	CancelRequestID          int64
	LastHeartBeatUpdatedTime time.Time
	TimerTaskStatus          int32
	// For retry
	Attempt            int32
	DomainID           string
	StartedIdentity    string
	TaskList           string
	HasRetryPolicy     bool
	InitialInterval    int32
	BackoffCoefficient float64
	MaximumInterval    int32
	ExpirationTime     time.Time
	MaximumAttempts    int32
	NonRetriableErrors []string
	// Not written to database - This is used only for deduping heartbeat timer creation
	LastHeartbeatTimeoutVisibility int64
}

ActivityInfo details.

type ActivityRetryTimerTask added in v0.4.0

type ActivityRetryTimerTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	EventID             int64
	Version             int64
	Attempt             int32
}

ActivityRetryTimerTask to schedule a retry task for activity

func (*ActivityRetryTimerTask) GetTaskID added in v0.4.0

func (r *ActivityRetryTimerTask) GetTaskID() int64

GetTaskID returns the sequence ID.

func (*ActivityRetryTimerTask) GetType added in v0.4.0

func (r *ActivityRetryTimerTask) GetType() int

GetType returns the type of the retry timer task

func (*ActivityRetryTimerTask) GetVersion added in v0.4.0

func (r *ActivityRetryTimerTask) GetVersion() int64

GetVersion returns the version of the retry timer task

func (*ActivityRetryTimerTask) GetVisibilityTimestamp added in v0.4.0

func (r *ActivityRetryTimerTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*ActivityRetryTimerTask) SetTaskID added in v0.4.0

func (r *ActivityRetryTimerTask) SetTaskID(id int64)

SetTaskID sets the sequence ID.

func (*ActivityRetryTimerTask) SetVersion added in v0.4.0

func (r *ActivityRetryTimerTask) SetVersion(version int64)

SetVersion returns the version of the retry timer task

func (*ActivityRetryTimerTask) SetVisibilityTimestamp added in v0.4.0

func (r *ActivityRetryTimerTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

type ActivityTask

type ActivityTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	DomainID            string
	TaskList            string
	ScheduleID          int64
	Version             int64
}

ActivityTask identifies a transfer task for activity

func (*ActivityTask) GetTaskID

func (a *ActivityTask) GetTaskID() int64

GetTaskID returns the sequence ID of the activity task

func (*ActivityTask) GetType

func (a *ActivityTask) GetType() int

GetType returns the type of the activity task

func (*ActivityTask) GetVersion added in v0.3.12

func (a *ActivityTask) GetVersion() int64

GetVersion returns the version of the activity task

func (*ActivityTask) GetVisibilityTimestamp added in v0.3.14

func (a *ActivityTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*ActivityTask) SetTaskID

func (a *ActivityTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the activity task

func (*ActivityTask) SetVersion added in v0.3.12

func (a *ActivityTask) SetVersion(version int64)

SetVersion returns the version of the activity task

func (*ActivityTask) SetVisibilityTimestamp added in v0.3.14

func (a *ActivityTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type ActivityTimeoutTask

type ActivityTimeoutTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	TimeoutType         int
	EventID             int64
	Attempt             int64
	Version             int64
}

ActivityTimeoutTask identifies a timeout task.

func (*ActivityTimeoutTask) GetTaskID

func (a *ActivityTimeoutTask) GetTaskID() int64

GetTaskID returns the sequence ID.

func (*ActivityTimeoutTask) GetType

func (a *ActivityTimeoutTask) GetType() int

GetType returns the type of the timer task

func (*ActivityTimeoutTask) GetVersion added in v0.3.12

func (a *ActivityTimeoutTask) GetVersion() int64

GetVersion returns the version of the timer task

func (*ActivityTimeoutTask) GetVisibilityTimestamp

func (a *ActivityTimeoutTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*ActivityTimeoutTask) SetTaskID

func (a *ActivityTimeoutTask) SetTaskID(id int64)

SetTaskID sets the sequence ID.

func (*ActivityTimeoutTask) SetVersion added in v0.3.12

func (a *ActivityTimeoutTask) SetVersion(version int64)

SetVersion returns the version of the timer task

func (*ActivityTimeoutTask) SetVisibilityTimestamp

func (a *ActivityTimeoutTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

type AppendHistoryEventsRequest

type AppendHistoryEventsRequest struct {
	DomainID          string
	Execution         workflow.WorkflowExecution
	FirstEventID      int64
	EventBatchVersion int64
	RangeID           int64
	TransactionID     int64
	Events            []*workflow.HistoryEvent
	Overwrite         bool
	//Optional. It is to suggest a binary encoding type to serialize history events
	Encoding common.EncodingType
}

AppendHistoryEventsRequest is used to append new events to workflow execution history Deprecated: use v2 API-AppendHistoryNodes() instead

type AppendHistoryEventsResponse added in v0.4.0

type AppendHistoryEventsResponse struct {
	Size int
}

AppendHistoryEventsResponse is response for AppendHistoryEventsRequest Deprecated: uses V2 API-AppendHistoryNodesRequest

type AppendHistoryNodesRequest added in v0.5.0

type AppendHistoryNodesRequest struct {
	// true if this is the first append request to the branch
	IsNewBranch bool
	// The branch to be appended
	BranchToken []byte
	// The batch of events to be appended. The first eventID will become the nodeID of this batch
	Events []*workflow.HistoryEvent
	// requested TransactionID for this write operation. For the same eventID, the node with larger TransactionID always wins
	TransactionID int64
	// It is to suggest a binary encoding type to serialize history events
	Encoding common.EncodingType
}

AppendHistoryNodesRequest is used to append a batch of history nodes

type AppendHistoryNodesResponse added in v0.5.0

type AppendHistoryNodesResponse struct {
	// the size of the event data that has been appended
	Size int
}

AppendHistoryNodesResponse is a response to AppendHistoryNodesRequest

type BufferedReplicationTask added in v0.3.12

type BufferedReplicationTask struct {
	FirstEventID            int64
	NextEventID             int64
	Version                 int64
	History                 []*workflow.HistoryEvent
	NewRunHistory           []*workflow.HistoryEvent
	EventStoreVersion       int32
	NewRunEventStoreVersion int32
}

BufferedReplicationTask has details to handle out of order receive of history events

type CancelExecutionTask

type CancelExecutionTask struct {
	VisibilityTimestamp     time.Time
	TaskID                  int64
	TargetDomainID          string
	TargetWorkflowID        string
	TargetRunID             string
	TargetChildWorkflowOnly bool
	InitiatedID             int64
	Version                 int64
}

CancelExecutionTask identifies a transfer task for cancel of execution

func (*CancelExecutionTask) GetTaskID

func (u *CancelExecutionTask) GetTaskID() int64

GetTaskID returns the sequence ID of the cancel transfer task.

func (*CancelExecutionTask) GetType

func (u *CancelExecutionTask) GetType() int

GetType returns the type of the cancel transfer task

func (*CancelExecutionTask) GetVersion added in v0.3.12

func (u *CancelExecutionTask) GetVersion() int64

GetVersion returns the version of the cancel transfer task

func (*CancelExecutionTask) GetVisibilityTimestamp added in v0.3.14

func (u *CancelExecutionTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*CancelExecutionTask) SetTaskID

func (u *CancelExecutionTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the cancel transfer task.

func (*CancelExecutionTask) SetVersion added in v0.3.12

func (u *CancelExecutionTask) SetVersion(version int64)

SetVersion returns the version of the cancel transfer task

func (*CancelExecutionTask) SetVisibilityTimestamp added in v0.3.14

func (u *CancelExecutionTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type ChildExecutionInfo

type ChildExecutionInfo struct {
	Version         int64
	InitiatedID     int64
	InitiatedEvent  *workflow.HistoryEvent
	StartedID       int64
	StartedEvent    *workflow.HistoryEvent
	CreateRequestID string
}

ChildExecutionInfo has details for pending child executions.

type CloseExecutionTask added in v0.3.3

type CloseExecutionTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	Version             int64
}

CloseExecutionTask identifies a transfer task for deletion of execution

func (*CloseExecutionTask) GetTaskID added in v0.3.3

func (a *CloseExecutionTask) GetTaskID() int64

GetTaskID returns the sequence ID of the close execution task

func (*CloseExecutionTask) GetType added in v0.3.3

func (a *CloseExecutionTask) GetType() int

GetType returns the type of the close execution task

func (*CloseExecutionTask) GetVersion added in v0.3.12

func (a *CloseExecutionTask) GetVersion() int64

GetVersion returns the version of the close execution task

func (*CloseExecutionTask) GetVisibilityTimestamp added in v0.3.14

func (a *CloseExecutionTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*CloseExecutionTask) SetTaskID added in v0.3.3

func (a *CloseExecutionTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the close execution task

func (*CloseExecutionTask) SetVersion added in v0.3.12

func (a *CloseExecutionTask) SetVersion(version int64)

SetVersion returns the version of the close execution task

func (*CloseExecutionTask) SetVisibilityTimestamp added in v0.3.14

func (a *CloseExecutionTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type Closeable

type Closeable interface {
	Close()
}

Closeable is an interface for any entity that supports a close operation to release resources

type ClusterReplicationConfig added in v0.3.7

type ClusterReplicationConfig struct {
	ClusterName string
}

ClusterReplicationConfig describes the cross DC cluster replication configuration

func DeserializeClusterConfigs added in v0.4.0

func DeserializeClusterConfigs(replicationConfigs []map[string]interface{}) []*ClusterReplicationConfig

DeserializeClusterConfigs creates an array of ClusterReplicationConfigs from an array of map representations

func GetOrUseDefaultClusters added in v0.3.7

func GetOrUseDefaultClusters(currentClusterName string, clusters []*ClusterReplicationConfig) []*ClusterReplicationConfig

GetOrUseDefaultClusters return the current cluster or use the input if valid

type CompleteReplicationTaskRequest added in v0.3.11

type CompleteReplicationTaskRequest struct {
	TaskID int64
}

CompleteReplicationTaskRequest is used to complete a task in the replication task queue

type CompleteTaskRequest

type CompleteTaskRequest struct {
	TaskList *TaskListInfo
	TaskID   int64
}

CompleteTaskRequest is used to complete a task

type CompleteTimerTaskRequest

type CompleteTimerTaskRequest struct {
	VisibilityTimestamp time.Time
	TaskID              int64
}

CompleteTimerTaskRequest is used to complete a task in the timer task queue

type CompleteTransferTaskRequest

type CompleteTransferTaskRequest struct {
	TaskID int64
}

CompleteTransferTaskRequest is used to complete a task in the transfer task queue

type ConditionFailedError

type ConditionFailedError struct {
	Msg string
}

ConditionFailedError represents a failed conditional update for execution record

func (*ConditionFailedError) Error

func (e *ConditionFailedError) Error() string

type CreateDomainRequest

type CreateDomainRequest struct {
	Info              *DomainInfo
	Config            *DomainConfig
	ReplicationConfig *DomainReplicationConfig
	IsGlobalDomain    bool
	ConfigVersion     int64
	FailoverVersion   int64
}

CreateDomainRequest is used to create the domain

type CreateDomainResponse

type CreateDomainResponse struct {
	ID string
}

CreateDomainResponse is the response for CreateDomain

type CreateShardRequest

type CreateShardRequest struct {
	ShardInfo *ShardInfo
}

CreateShardRequest is used to create a shard in executions table

type CreateTaskInfo

type CreateTaskInfo struct {
	Execution workflow.WorkflowExecution
	Data      *TaskInfo
	TaskID    int64
}

CreateTaskInfo describes a task to be created in CreateTasksRequest

type CreateTasksRequest

type CreateTasksRequest struct {
	TaskListInfo *TaskListInfo
	Tasks        []*CreateTaskInfo
}

CreateTasksRequest is used to create a new task for a workflow exectution

type CreateTasksResponse

type CreateTasksResponse struct {
}

CreateTasksResponse is the response to CreateTasksRequest

type CreateWorkflowExecutionRequest

type CreateWorkflowExecutionRequest struct {
	RequestID                   string
	DomainID                    string
	Execution                   workflow.WorkflowExecution
	ParentDomainID              string
	ParentExecution             *workflow.WorkflowExecution
	InitiatedID                 int64
	TaskList                    string
	WorkflowTypeName            string
	WorkflowTimeout             int32
	DecisionTimeoutValue        int32
	ExecutionContext            []byte
	NextEventID                 int64
	LastProcessedEvent          int64
	SignalCount                 int32
	HistorySize                 int64
	TransferTasks               []Task
	ReplicationTasks            []Task
	TimerTasks                  []Task
	RangeID                     int64
	DecisionVersion             int64
	DecisionScheduleID          int64
	DecisionStartedID           int64
	DecisionStartToCloseTimeout int32
	CreateWorkflowMode          int
	PreviousRunID               string
	PreviousLastWriteVersion    int64
	ReplicationState            *ReplicationState
	Attempt                     int32
	HasRetryPolicy              bool
	InitialInterval             int32
	BackoffCoefficient          float64
	MaximumInterval             int32
	ExpirationTime              time.Time
	MaximumAttempts             int32
	NonRetriableErrors          []string
	// 2 means using eventsV2, empty/0/1 means using events(V1)
	EventStoreVersion int32
	// for eventsV2: branchToken from historyPersistence
	BranchToken       []byte
	CronSchedule      string
	ExpirationSeconds int32
}

CreateWorkflowExecutionRequest is used to write a new workflow execution

type CreateWorkflowExecutionResponse

type CreateWorkflowExecutionResponse struct {
}

CreateWorkflowExecutionResponse is the response to CreateWorkflowExecutionRequest

type CurrentWorkflowConditionFailedError added in v0.4.0

type CurrentWorkflowConditionFailedError struct {
	Msg string
}

CurrentWorkflowConditionFailedError represents a failed conditional update for current workflow record

func (*CurrentWorkflowConditionFailedError) Error added in v0.4.0

type DataBlob added in v0.4.0

type DataBlob struct {
	Encoding common.EncodingType
	Data     []byte
}

DataBlob represents a blob for any binary data. It contains raw data, and metadata(right now only encoding) in other field Note that it should be only used for Persistence layer, below dataInterface and application(historyEngine/etc)

func NewDataBlob added in v0.4.0

func NewDataBlob(data []byte, encodingType common.EncodingType) *DataBlob

NewDataBlob returns a new DataBlob

func (*DataBlob) GetEncoding added in v0.4.0

func (d *DataBlob) GetEncoding() common.EncodingType

GetEncoding returns encoding type

type DecisionTask

type DecisionTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	DomainID            string
	TaskList            string
	ScheduleID          int64
	Version             int64
}

DecisionTask identifies a transfer task for decision

func (*DecisionTask) GetTaskID

func (d *DecisionTask) GetTaskID() int64

GetTaskID returns the sequence ID of the decision task.

func (*DecisionTask) GetType

func (d *DecisionTask) GetType() int

GetType returns the type of the decision task

func (*DecisionTask) GetVersion added in v0.3.12

func (d *DecisionTask) GetVersion() int64

GetVersion returns the version of the decision task

func (*DecisionTask) GetVisibilityTimestamp added in v0.3.14

func (d *DecisionTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*DecisionTask) SetTaskID

func (d *DecisionTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the decision task

func (*DecisionTask) SetVersion added in v0.3.12

func (d *DecisionTask) SetVersion(version int64)

SetVersion returns the version of the decision task

func (*DecisionTask) SetVisibilityTimestamp added in v0.3.14

func (d *DecisionTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type DecisionTimeoutTask

type DecisionTimeoutTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	EventID             int64
	ScheduleAttempt     int64
	TimeoutType         int
	Version             int64
}

DecisionTimeoutTask identifies a timeout task.

func (*DecisionTimeoutTask) GetTaskID

func (d *DecisionTimeoutTask) GetTaskID() int64

GetTaskID returns the sequence ID.

func (*DecisionTimeoutTask) GetType

func (d *DecisionTimeoutTask) GetType() int

GetType returns the type of the timer task

func (*DecisionTimeoutTask) GetVersion added in v0.3.12

func (d *DecisionTimeoutTask) GetVersion() int64

GetVersion returns the version of the timer task

func (*DecisionTimeoutTask) GetVisibilityTimestamp

func (d *DecisionTimeoutTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*DecisionTimeoutTask) SetTaskID

func (d *DecisionTimeoutTask) SetTaskID(id int64)

SetTaskID sets the sequence ID.

func (*DecisionTimeoutTask) SetVersion added in v0.3.12

func (d *DecisionTimeoutTask) SetVersion(version int64)

SetVersion returns the version of the timer task

func (*DecisionTimeoutTask) SetVisibilityTimestamp

func (d *DecisionTimeoutTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

type DeleteDomainByNameRequest

type DeleteDomainByNameRequest struct {
	Name string
}

DeleteDomainByNameRequest is used to delete domain entry from domains_by_name table

type DeleteDomainRequest

type DeleteDomainRequest struct {
	ID string
}

DeleteDomainRequest is used to delete domain entry from domains table

type DeleteHistoryBranchRequest added in v0.5.0

type DeleteHistoryBranchRequest struct {
	// branch to be deleted
	BranchToken []byte
}

DeleteHistoryBranchRequest is used to remove a history branch

type DeleteHistoryEventTask

type DeleteHistoryEventTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	Version             int64
}

DeleteHistoryEventTask identifies a timer task for deletion of history events of completed execution.

func (*DeleteHistoryEventTask) GetTaskID

func (a *DeleteHistoryEventTask) GetTaskID() int64

GetTaskID returns the sequence ID of the delete execution task

func (*DeleteHistoryEventTask) GetType

func (a *DeleteHistoryEventTask) GetType() int

GetType returns the type of the delete execution task

func (*DeleteHistoryEventTask) GetVersion added in v0.3.12

func (a *DeleteHistoryEventTask) GetVersion() int64

GetVersion returns the version of the delete execution task

func (*DeleteHistoryEventTask) GetVisibilityTimestamp added in v0.3.14

func (a *DeleteHistoryEventTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*DeleteHistoryEventTask) SetTaskID

func (a *DeleteHistoryEventTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the delete execution task

func (*DeleteHistoryEventTask) SetVersion added in v0.3.12

func (a *DeleteHistoryEventTask) SetVersion(version int64)

SetVersion returns the version of the delete execution task

func (*DeleteHistoryEventTask) SetVisibilityTimestamp added in v0.3.14

func (a *DeleteHistoryEventTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type DeleteWorkflowExecutionHistoryRequest

type DeleteWorkflowExecutionHistoryRequest struct {
	DomainID  string
	Execution workflow.WorkflowExecution
}

DeleteWorkflowExecutionHistoryRequest is used to delete workflow execution history Deprecated: use v2 API-AppendHistoryNodes() instead

type DeleteWorkflowExecutionRequest

type DeleteWorkflowExecutionRequest struct {
	DomainID   string
	WorkflowID string
	RunID      string
}

DeleteWorkflowExecutionRequest is used to delete a workflow execution

type DomainConfig

type DomainConfig struct {
	// NOTE: this retention is in days, not in seconds
	Retention      int32
	EmitMetric     bool
	ArchivalBucket string
	ArchivalStatus workflow.ArchivalStatus
}

DomainConfig describes the domain configuration

type DomainInfo

type DomainInfo struct {
	ID          string
	Name        string
	Status      int
	Description string
	OwnerEmail  string
	Data        map[string]string
}

DomainInfo describes the domain entity

type DomainReplicationConfig added in v0.3.7

type DomainReplicationConfig struct {
	ActiveClusterName string
	Clusters          []*ClusterReplicationConfig
}

DomainReplicationConfig describes the cross DC domain replication configuration

type ExecutionManager

type ExecutionManager interface {
	Closeable
	GetName() string
	GetShardID() int

	CreateWorkflowExecution(request *CreateWorkflowExecutionRequest) (*CreateWorkflowExecutionResponse, error)
	GetWorkflowExecution(request *GetWorkflowExecutionRequest) (*GetWorkflowExecutionResponse, error)
	UpdateWorkflowExecution(request *UpdateWorkflowExecutionRequest) (*UpdateWorkflowExecutionResponse, error)
	ResetMutableState(request *ResetMutableStateRequest) error
	DeleteWorkflowExecution(request *DeleteWorkflowExecutionRequest) error
	GetCurrentExecution(request *GetCurrentExecutionRequest) (*GetCurrentExecutionResponse, error)

	// Transfer task related methods
	GetTransferTasks(request *GetTransferTasksRequest) (*GetTransferTasksResponse, error)
	CompleteTransferTask(request *CompleteTransferTaskRequest) error
	RangeCompleteTransferTask(request *RangeCompleteTransferTaskRequest) error

	// Replication task related methods
	GetReplicationTasks(request *GetReplicationTasksRequest) (*GetReplicationTasksResponse, error)
	CompleteReplicationTask(request *CompleteReplicationTaskRequest) error

	// Timer related methods.
	GetTimerIndexTasks(request *GetTimerIndexTasksRequest) (*GetTimerIndexTasksResponse, error)
	CompleteTimerTask(request *CompleteTimerTaskRequest) error
	RangeCompleteTimerTask(request *RangeCompleteTimerTaskRequest) error
}

ExecutionManager is used to manage workflow executions

func NewExecutionManagerImpl added in v0.4.0

func NewExecutionManagerImpl(persistence ExecutionStore, logger bark.Logger) ExecutionManager

NewExecutionManagerImpl returns new ExecutionManager

func NewWorkflowExecutionPersistenceMetricsClient added in v0.3.14

func NewWorkflowExecutionPersistenceMetricsClient(persistence ExecutionManager, metricClient metrics.Client, logger bark.Logger) ExecutionManager

NewWorkflowExecutionPersistenceMetricsClient creates a client to manage executions

func NewWorkflowExecutionPersistenceRateLimitedClient added in v0.3.14

func NewWorkflowExecutionPersistenceRateLimitedClient(persistence ExecutionManager, rateLimiter common.TokenBucket, logger bark.Logger) ExecutionManager

NewWorkflowExecutionPersistenceRateLimitedClient creates a client to manage executions

type ExecutionManagerFactory

type ExecutionManagerFactory interface {
	Closeable
	NewExecutionManager(shardID int) (ExecutionManager, error)
}

ExecutionManagerFactory creates an instance of ExecutionManager for a given shard

type ExecutionStore added in v0.4.0

type ExecutionStore interface {
	Closeable
	GetName() string
	GetShardID() int
	//The below three APIs are related to serialization/deserialization
	GetWorkflowExecution(request *GetWorkflowExecutionRequest) (*InternalGetWorkflowExecutionResponse, error)
	UpdateWorkflowExecution(request *InternalUpdateWorkflowExecutionRequest) error
	ResetMutableState(request *InternalResetMutableStateRequest) error

	CreateWorkflowExecution(request *CreateWorkflowExecutionRequest) (*CreateWorkflowExecutionResponse, error)
	DeleteWorkflowExecution(request *DeleteWorkflowExecutionRequest) error
	GetCurrentExecution(request *GetCurrentExecutionRequest) (*GetCurrentExecutionResponse, error)

	// Transfer task related methods
	GetTransferTasks(request *GetTransferTasksRequest) (*GetTransferTasksResponse, error)
	CompleteTransferTask(request *CompleteTransferTaskRequest) error
	RangeCompleteTransferTask(request *RangeCompleteTransferTaskRequest) error

	// Replication task related methods
	GetReplicationTasks(request *GetReplicationTasksRequest) (*GetReplicationTasksResponse, error)
	CompleteReplicationTask(request *CompleteReplicationTaskRequest) error

	// Timer related methods.
	GetTimerIndexTasks(request *GetTimerIndexTasksRequest) (*GetTimerIndexTasksResponse, error)
	CompleteTimerTask(request *CompleteTimerTaskRequest) error
	RangeCompleteTimerTask(request *RangeCompleteTimerTaskRequest) error
}

ExecutionStore is used to manage workflow executions for Persistence layer

type ForkHistoryBranchRequest added in v0.5.0

type ForkHistoryBranchRequest struct {
	// The branch to be fork
	ForkBranchToken []byte
	// The nodeID to fork from, the new branch will start from ForkNodeID
	// Application must provide a void forking nodeID, it must be a valid nodeID in that branch. A valid nodeID is the firstEventID of a valid batch of events.
	// And ForkNodeID > 1 because forking from 1 doesn't make any sense.
	ForkNodeID int64
}

ForkHistoryBranchRequest is used to fork a history branch

type ForkHistoryBranchResponse added in v0.5.0

type ForkHistoryBranchResponse struct {
	// branchToken to represent the new branch
	NewBranchToken []byte
}

ForkHistoryBranchResponse is the response to ForkHistoryBranchRequest

type GetClosedWorkflowExecutionRequest

type GetClosedWorkflowExecutionRequest struct {
	DomainUUID string
	Execution  s.WorkflowExecution
}

GetClosedWorkflowExecutionRequest is used retrieve the record for a specific execution

type GetClosedWorkflowExecutionResponse

type GetClosedWorkflowExecutionResponse struct {
	Execution *s.WorkflowExecutionInfo
}

GetClosedWorkflowExecutionResponse is the response to GetClosedWorkflowExecutionRequest

type GetCurrentExecutionRequest

type GetCurrentExecutionRequest struct {
	DomainID   string
	WorkflowID string
}

GetCurrentExecutionRequest is used to retrieve the current RunId for an execution

type GetCurrentExecutionResponse

type GetCurrentExecutionResponse struct {
	StartRequestID string
	RunID          string
	State          int
	CloseStatus    int
}

GetCurrentExecutionResponse is the response to GetCurrentExecution

type GetDomainRequest

type GetDomainRequest struct {
	ID   string
	Name string
}

GetDomainRequest is used to read domain

type GetDomainResponse

type GetDomainResponse struct {
	Info                        *DomainInfo
	Config                      *DomainConfig
	ReplicationConfig           *DomainReplicationConfig
	IsGlobalDomain              bool
	ConfigVersion               int64
	FailoverVersion             int64
	FailoverNotificationVersion int64
	NotificationVersion         int64
	TableVersion                int
}

GetDomainResponse is the response for GetDomain

type GetHistoryTreeRequest added in v0.5.0

type GetHistoryTreeRequest struct {
	// A UUID of a tree
	TreeID string
}

GetHistoryTreeRequest is used to retrieve branch info of a history tree

type GetHistoryTreeResponse added in v0.5.0

type GetHistoryTreeResponse struct {
	// all branches of a tree
	Branches []*workflow.HistoryBranch
}

GetHistoryTreeResponse is a response to GetHistoryTreeRequest

type GetMetadataResponse added in v0.3.13

type GetMetadataResponse struct {
	NotificationVersion int64
}

GetMetadataResponse is the response for GetMetadata

type GetReplicationTasksRequest added in v0.3.11

type GetReplicationTasksRequest struct {
	ReadLevel     int64
	MaxReadLevel  int64
	BatchSize     int
	NextPageToken []byte
}

GetReplicationTasksRequest is used to read tasks from the replication task queue

type GetReplicationTasksResponse added in v0.3.11

type GetReplicationTasksResponse struct {
	Tasks         []*ReplicationTaskInfo
	NextPageToken []byte
}

GetReplicationTasksResponse is the response to GetReplicationTask

type GetShardRequest

type GetShardRequest struct {
	ShardID int
}

GetShardRequest is used to get shard information

type GetShardResponse

type GetShardResponse struct {
	ShardInfo *ShardInfo
}

GetShardResponse is the response to GetShard

type GetTasksRequest

type GetTasksRequest struct {
	DomainID     string
	TaskList     string
	TaskType     int
	ReadLevel    int64
	MaxReadLevel int64 // inclusive
	BatchSize    int
	RangeID      int64
}

GetTasksRequest is used to retrieve tasks of a task list

type GetTasksResponse

type GetTasksResponse struct {
	Tasks []*TaskInfo
}

GetTasksResponse is the response to GetTasksRequests

type GetTimerIndexTasksRequest

type GetTimerIndexTasksRequest struct {
	MinTimestamp  time.Time
	MaxTimestamp  time.Time
	BatchSize     int
	NextPageToken []byte
}

GetTimerIndexTasksRequest is the request for GetTimerIndexTasks TODO: replace this with an iterator that can configure min and max index.

type GetTimerIndexTasksResponse

type GetTimerIndexTasksResponse struct {
	Timers        []*TimerTaskInfo
	NextPageToken []byte
}

GetTimerIndexTasksResponse is the response for GetTimerIndexTasks

type GetTransferTasksRequest

type GetTransferTasksRequest struct {
	ReadLevel     int64
	MaxReadLevel  int64
	BatchSize     int
	NextPageToken []byte
}

GetTransferTasksRequest is used to read tasks from the transfer task queue

type GetTransferTasksResponse

type GetTransferTasksResponse struct {
	Tasks         []*TransferTaskInfo
	NextPageToken []byte
}

GetTransferTasksResponse is the response to GetTransferTasksRequest

type GetWorkflowExecutionHistoryByBatchResponse added in v0.5.0

type GetWorkflowExecutionHistoryByBatchResponse struct {
	History []*workflow.History
	// Token to read next page if there are more events beyond page size.
	// Use this to set NextPageToken on GetworkflowExecutionHistoryRequest to read the next page.
	NextPageToken []byte
	// the first_event_id of last loaded batch
	LastFirstEventID int64
	// Size of history read from store
	Size int
}

GetWorkflowExecutionHistoryByBatchResponse is the response to GetWorkflowExecutionHistoryRequest Deprecated: use V2 API instead-ReadHistoryBranchByBatch()

type GetWorkflowExecutionHistoryRequest

type GetWorkflowExecutionHistoryRequest struct {
	DomainID  string
	Execution workflow.WorkflowExecution
	// Get the history events from FirstEventID. Inclusive.
	FirstEventID int64
	// Get the history events upto NextEventID.  Not Inclusive.
	NextEventID int64
	// Maximum number of history append transactions per page
	PageSize int
	// Token to continue reading next page of history append transactions.  Pass in empty slice for first page
	NextPageToken []byte
}

GetWorkflowExecutionHistoryRequest is used to retrieve history of a workflow execution Deprecated: use v2 API-AppendHistoryNodes() instead

type GetWorkflowExecutionHistoryResponse

type GetWorkflowExecutionHistoryResponse struct {
	History *workflow.History
	// Token to read next page if there are more events beyond page size.
	// Use this to set NextPageToken on GetworkflowExecutionHistoryRequest to read the next page.
	NextPageToken []byte
	// the first_event_id of last loaded batch
	LastFirstEventID int64
	// Size of history read from store
	Size int
}

GetWorkflowExecutionHistoryResponse is the response to GetWorkflowExecutionHistoryRequest Deprecated: use V2 API instead-ReadHistoryBranch()

type GetWorkflowExecutionRequest

type GetWorkflowExecutionRequest struct {
	DomainID  string
	Execution workflow.WorkflowExecution
}

GetWorkflowExecutionRequest is used to retrieve the info of a workflow execution

type GetWorkflowExecutionResponse

type GetWorkflowExecutionResponse struct {
	State             *WorkflowMutableState
	MutableStateStats *MutableStateStats
}

GetWorkflowExecutionResponse is the response to GetworkflowExecutionRequest

type HistoryDeserializationError

type HistoryDeserializationError struct {
	// contains filtered or unexported fields
}

HistoryDeserializationError is an error type that's returned on a history deserialization failure

func NewHistoryDeserializationError added in v0.4.0

func NewHistoryDeserializationError(msg string) *HistoryDeserializationError

NewHistoryDeserializationError returns a HistoryDeserializationError

func (*HistoryDeserializationError) Error

type HistoryManager

type HistoryManager interface {
	Closeable
	GetName() string

	//Deprecated: use v2 API-AppendHistoryNodes() instead
	AppendHistoryEvents(request *AppendHistoryEventsRequest) (*AppendHistoryEventsResponse, error)
	// GetWorkflowExecutionHistory retrieves the paginated list of history events for given execution
	//Deprecated: use v2 API-ReadHistoryBranch() instead
	GetWorkflowExecutionHistory(request *GetWorkflowExecutionHistoryRequest) (*GetWorkflowExecutionHistoryResponse, error)
	//Deprecated: use v2 API-ReadHistoryBranchByBatch() instead
	GetWorkflowExecutionHistoryByBatch(request *GetWorkflowExecutionHistoryRequest) (*GetWorkflowExecutionHistoryByBatchResponse, error)
	//Deprecated: use v2 API-DeleteHistoryBranch instead
	DeleteWorkflowExecutionHistory(request *DeleteWorkflowExecutionHistoryRequest) error
}

HistoryManager is used to manage Workflow Execution HistoryEventBatch Deprecated: use HistoryV2Manager instead

func NewHistoryManagerImpl added in v0.4.0

func NewHistoryManagerImpl(persistence HistoryStore, logger bark.Logger) HistoryManager

NewHistoryManagerImpl returns new HistoryManager

func NewHistoryPersistenceMetricsClient added in v0.3.14

func NewHistoryPersistenceMetricsClient(persistence HistoryManager, metricClient metrics.Client, logger bark.Logger) HistoryManager

NewHistoryPersistenceMetricsClient creates a HistoryManager client to manage workflow execution history

func NewHistoryPersistenceRateLimitedClient added in v0.3.14

func NewHistoryPersistenceRateLimitedClient(persistence HistoryManager, rateLimiter common.TokenBucket, logger bark.Logger) HistoryManager

NewHistoryPersistenceRateLimitedClient creates a HistoryManager client to manage workflow execution history

type HistoryReplicationTask added in v0.3.11

type HistoryReplicationTask struct {
	VisibilityTimestamp     time.Time
	TaskID                  int64
	FirstEventID            int64
	NextEventID             int64
	Version                 int64
	LastReplicationInfo     map[string]*ReplicationInfo
	EventStoreVersion       int32
	BranchToken             []byte
	NewRunEventStoreVersion int32
	NewRunBranchToken       []byte
}

HistoryReplicationTask is the replication task created for shipping history replication events to other clusters

func (*HistoryReplicationTask) GetTaskID added in v0.3.11

func (a *HistoryReplicationTask) GetTaskID() int64

GetTaskID returns the sequence ID of the history replication task

func (*HistoryReplicationTask) GetType added in v0.3.11

func (a *HistoryReplicationTask) GetType() int

GetType returns the type of the history replication task

func (*HistoryReplicationTask) GetVersion added in v0.3.12

func (a *HistoryReplicationTask) GetVersion() int64

GetVersion returns the version of the history replication task

func (*HistoryReplicationTask) GetVisibilityTimestamp added in v0.3.14

func (a *HistoryReplicationTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*HistoryReplicationTask) SetTaskID added in v0.3.11

func (a *HistoryReplicationTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the history replication task

func (*HistoryReplicationTask) SetVersion added in v0.3.12

func (a *HistoryReplicationTask) SetVersion(version int64)

SetVersion returns the version of the history replication task

func (*HistoryReplicationTask) SetVisibilityTimestamp added in v0.3.14

func (a *HistoryReplicationTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type HistorySerializationError

type HistorySerializationError struct {
	// contains filtered or unexported fields
}

HistorySerializationError is an error type that's returned on a history serialization failure

func NewHistorySerializationError added in v0.4.0

func NewHistorySerializationError(msg string) *HistorySerializationError

NewHistorySerializationError returns a HistorySerializationError

func (*HistorySerializationError) Error

func (e *HistorySerializationError) Error() string

type HistorySerializer

type HistorySerializer interface {
	// serialize/deserialize history events
	SerializeBatchEvents(batch []*workflow.HistoryEvent, encodingType common.EncodingType) (*DataBlob, error)
	DeserializeBatchEvents(data *DataBlob) ([]*workflow.HistoryEvent, error)

	// serialize/deserialize a single history event
	SerializeEvent(event *workflow.HistoryEvent, encodingType common.EncodingType) (*DataBlob, error)
	DeserializeEvent(data *DataBlob) (*workflow.HistoryEvent, error)
}

HistorySerializer is used by persistence to serialize/deserialize history event(s) It will only be used inside persistence, so that serialize/deserialize is transparent for application

func NewHistorySerializer added in v0.4.0

func NewHistorySerializer() HistorySerializer

NewHistorySerializer returns a HistorySerializer

type HistoryStore added in v0.4.0

type HistoryStore interface {
	Closeable
	GetName() string

	//DEPRECATED in favor of V2 APIs-AppendHistoryNodes
	AppendHistoryEvents(request *InternalAppendHistoryEventsRequest) error
	//DEPRECATED in favor of V2 APIs-ReadHistoryBranch
	GetWorkflowExecutionHistory(request *InternalGetWorkflowExecutionHistoryRequest) (*InternalGetWorkflowExecutionHistoryResponse, error)
	//DEPRECATED in favor of V2 APIs-DeleteHistoryBranch
	DeleteWorkflowExecutionHistory(request *DeleteWorkflowExecutionHistoryRequest) error
}

HistoryStore is used to manage Workflow Execution HistoryEventBatch for Persistence layer DEPRECATED: use HistoryV2Store instead

type HistoryV2Manager added in v0.5.0

type HistoryV2Manager interface {
	Closeable
	GetName() string

	// AppendHistoryNodes add(or override) a batach of nodes to a history branch
	AppendHistoryNodes(request *AppendHistoryNodesRequest) (*AppendHistoryNodesResponse, error)
	// ReadHistoryBranch returns history node data for a branch
	ReadHistoryBranch(request *ReadHistoryBranchRequest) (*ReadHistoryBranchResponse, error)
	// ReadHistoryBranchByBatch returns history node data for a branch ByBatch
	ReadHistoryBranchByBatch(request *ReadHistoryBranchRequest) (*ReadHistoryBranchByBatchResponse, error)
	// ForkHistoryBranch forks a new branch from a old branch
	ForkHistoryBranch(request *ForkHistoryBranchRequest) (*ForkHistoryBranchResponse, error)
	// DeleteHistoryBranch removes a branch
	// If this is the last branch to delete, it will also remove the root node
	DeleteHistoryBranch(request *DeleteHistoryBranchRequest) error
	// GetHistoryTree returns all branch information of a tree
	GetHistoryTree(request *GetHistoryTreeRequest) (*GetHistoryTreeResponse, error)
}

HistoryV2Manager is used to manager workflow history events

func NewHistoryV2ManagerImpl added in v0.5.0

func NewHistoryV2ManagerImpl(persistence HistoryV2Store, logger bark.Logger) HistoryV2Manager

NewHistoryV2ManagerImpl returns new HistoryManager

func NewHistoryV2PersistenceMetricsClient added in v0.5.0

func NewHistoryV2PersistenceMetricsClient(persistence HistoryV2Manager, metricClient metrics.Client, logger bark.Logger) HistoryV2Manager

NewHistoryV2PersistenceMetricsClient creates a HistoryManager client to manage workflow execution history

func NewHistoryV2PersistenceRateLimitedClient added in v0.5.0

func NewHistoryV2PersistenceRateLimitedClient(persistence HistoryV2Manager, rateLimiter common.TokenBucket, logger bark.Logger) HistoryV2Manager

NewHistoryV2PersistenceRateLimitedClient creates a HistoryManager client to manage workflow execution history

type HistoryV2Store added in v0.5.0

type HistoryV2Store interface {
	Closeable
	GetName() string

	// AppendHistoryNodes add(or override) a node to a history branch
	AppendHistoryNodes(request *InternalAppendHistoryNodesRequest) error
	// ReadHistoryBranch returns history node data for a branch
	ReadHistoryBranch(request *InternalReadHistoryBranchRequest) (*InternalReadHistoryBranchResponse, error)
	// ForkHistoryBranch forks a new branch from a old branch
	ForkHistoryBranch(request *InternalForkHistoryBranchRequest) (*InternalForkHistoryBranchResponse, error)
	// DeleteHistoryBranch removes a branch
	DeleteHistoryBranch(request *InternalDeleteHistoryBranchRequest) error
	// GetHistoryTree returns all branch information of a tree
	GetHistoryTree(request *GetHistoryTreeRequest) (*GetHistoryTreeResponse, error)
}

HistoryV2Store is to manager workflow history events

type InternalActivityInfo added in v0.4.0

type InternalActivityInfo struct {
	Version                  int64
	ScheduleID               int64
	ScheduledEvent           *DataBlob
	ScheduledTime            time.Time
	StartedID                int64
	StartedEvent             *DataBlob
	StartedTime              time.Time
	ActivityID               string
	RequestID                string
	Details                  []byte
	ScheduleToStartTimeout   int32
	ScheduleToCloseTimeout   int32
	StartToCloseTimeout      int32
	HeartbeatTimeout         int32
	CancelRequested          bool
	CancelRequestID          int64
	LastHeartBeatUpdatedTime time.Time
	TimerTaskStatus          int32
	// For retry
	Attempt            int32
	DomainID           string
	StartedIdentity    string
	TaskList           string
	HasRetryPolicy     bool
	InitialInterval    int32
	BackoffCoefficient float64
	MaximumInterval    int32
	ExpirationTime     time.Time
	MaximumAttempts    int32
	NonRetriableErrors []string
	// Not written to database - This is used only for deduping heartbeat timer creation
	LastHeartbeatTimeoutVisibility int64
}

InternalActivityInfo details for Persistence Interface

type InternalAppendHistoryEventsRequest added in v0.4.0

type InternalAppendHistoryEventsRequest struct {
	DomainID          string
	Execution         workflow.WorkflowExecution
	FirstEventID      int64
	EventBatchVersion int64
	RangeID           int64
	TransactionID     int64
	Events            *DataBlob
	Overwrite         bool
}

InternalAppendHistoryEventsRequest is used to append new events to workflow execution history for Persistence Interface

type InternalAppendHistoryNodesRequest added in v0.5.0

type InternalAppendHistoryNodesRequest struct {
	// true if it is the first append request to the branch
	IsNewBranch bool
	// The branch to be appended
	BranchInfo workflow.HistoryBranch
	// The first eventID becomes the nodeID to be appended
	NodeID int64
	// The events to be appended
	Events *DataBlob
	// requested TransactionID for conditional update
	TransactionID int64
}

InternalAppendHistoryNodesRequest is used to append a batch of history nodes

type InternalBufferedReplicationTask added in v0.4.0

type InternalBufferedReplicationTask struct {
	FirstEventID            int64
	NextEventID             int64
	Version                 int64
	History                 *DataBlob
	NewRunHistory           *DataBlob
	EventStoreVersion       int32
	NewRunEventStoreVersion int32
}

InternalBufferedReplicationTask has details to handle out of order receive of history events for Persistence Interface

type InternalChildExecutionInfo added in v0.4.0

type InternalChildExecutionInfo struct {
	Version         int64
	InitiatedID     int64
	InitiatedEvent  DataBlob
	StartedID       int64
	StartedEvent    *DataBlob
	CreateRequestID string
}

InternalChildExecutionInfo has details for pending child executions for Persistence Interface

type InternalDeleteHistoryBranchRequest added in v0.5.0

type InternalDeleteHistoryBranchRequest struct {
	// branch to be deleted
	BranchInfo workflow.HistoryBranch
}

InternalDeleteHistoryBranchRequest is used to remove a history branch

type InternalForkHistoryBranchRequest added in v0.5.0

type InternalForkHistoryBranchRequest struct {
	// The branch to be fork
	ForkBranchInfo workflow.HistoryBranch
	// The nodeID to fork from, the new branch will start from ForkNodeID
	ForkNodeID int64
	// branchID of the new branch
	NewBranchID string
}

InternalForkHistoryBranchRequest is used to fork a history branch

type InternalForkHistoryBranchResponse added in v0.5.0

type InternalForkHistoryBranchResponse struct {
	// branchInfo to represent the new branch
	NewBranchInfo workflow.HistoryBranch
}

InternalForkHistoryBranchResponse is the response to ForkHistoryBranchRequest

type InternalGetWorkflowExecutionHistoryRequest added in v0.4.0

type InternalGetWorkflowExecutionHistoryRequest struct {
	// an extra field passing from GetWorkflowExecutionHistoryRequest
	LastEventBatchVersion int64

	DomainID  string
	Execution workflow.WorkflowExecution
	// Get the history events from FirstEventID. Inclusive.
	FirstEventID int64
	// Get the history events upto NextEventID.  Not Inclusive.
	NextEventID int64
	// Maximum number of history append transactions per page
	PageSize int
	// Token to continue reading next page of history append transactions.  Pass in empty slice for first page
	NextPageToken []byte
}

InternalGetWorkflowExecutionHistoryRequest is used to retrieve history of a workflow execution

type InternalGetWorkflowExecutionHistoryResponse added in v0.4.0

type InternalGetWorkflowExecutionHistoryResponse struct {
	History []*DataBlob
	// Token to read next page if there are more events beyond page size.
	// Use this to set NextPageToken on GetworkflowExecutionHistoryRequest to read the next page.
	NextPageToken []byte
	// an extra field passing to DataInterface
	LastEventBatchVersion int64
}

InternalGetWorkflowExecutionHistoryResponse is the response to GetWorkflowExecutionHistoryRequest for Persistence Interface

type InternalGetWorkflowExecutionResponse added in v0.4.0

type InternalGetWorkflowExecutionResponse struct {
	State *InternalWorkflowMutableState
}

InternalGetWorkflowExecutionResponse is the response to GetworkflowExecutionRequest for Persistence Interface

type InternalReadHistoryBranchRequest added in v0.5.0

type InternalReadHistoryBranchRequest struct {
	// The tree of branch range to be read
	TreeID string
	// The branch range to be read
	BranchID string
	// Get the history nodes from MinNodeID. Inclusive.
	MinNodeID int64
	// Get the history nodes upto MaxNodeID.  Exclusive.
	MaxNodeID int64
	// passing thru for pagination
	PageSize int
	// Pagination token
	NextPageToken []byte
}

InternalReadHistoryBranchRequest is used to read a history branch

type InternalReadHistoryBranchResponse added in v0.5.0

type InternalReadHistoryBranchResponse struct {
	// History events
	History []*DataBlob
	// Pagination token
	NextPageToken []byte
}

InternalReadHistoryBranchResponse is the response to ReadHistoryBranchRequest

type InternalResetMutableStateRequest added in v0.4.0

type InternalResetMutableStateRequest struct {
	PrevRunID        string
	ExecutionInfo    *InternalWorkflowExecutionInfo
	ReplicationState *ReplicationState
	Condition        int64
	RangeID          int64

	// Mutable state
	InsertActivityInfos       []*InternalActivityInfo
	InsertTimerInfos          []*TimerInfo
	InsertChildExecutionInfos []*InternalChildExecutionInfo
	InsertRequestCancelInfos  []*RequestCancelInfo
	InsertSignalInfos         []*SignalInfo
	InsertSignalRequestedIDs  []string
}

InternalResetMutableStateRequest is used to reset workflow execution state for Persistence Interface

type InternalUpdateWorkflowExecutionRequest added in v0.4.0

type InternalUpdateWorkflowExecutionRequest struct {
	ExecutionInfo        *InternalWorkflowExecutionInfo
	ReplicationState     *ReplicationState
	TransferTasks        []Task
	TimerTasks           []Task
	ReplicationTasks     []Task
	DeleteTimerTask      Task
	Condition            int64
	RangeID              int64
	ContinueAsNew        *CreateWorkflowExecutionRequest
	FinishExecution      bool
	FinishedExecutionTTL int32

	// Mutable state
	UpsertActivityInfos           []*InternalActivityInfo
	DeleteActivityInfos           []int64
	UpserTimerInfos               []*TimerInfo
	DeleteTimerInfos              []string
	UpsertChildExecutionInfos     []*InternalChildExecutionInfo
	DeleteChildExecutionInfo      *int64
	UpsertRequestCancelInfos      []*RequestCancelInfo
	DeleteRequestCancelInfo       *int64
	UpsertSignalInfos             []*SignalInfo
	DeleteSignalInfo              *int64
	UpsertSignalRequestedIDs      []string
	DeleteSignalRequestedID       string
	NewBufferedEvents             *DataBlob
	ClearBufferedEvents           bool
	NewBufferedReplicationTask    *InternalBufferedReplicationTask
	DeleteBufferedReplicationTask *int64
}

InternalUpdateWorkflowExecutionRequest is used to update a workflow execution for Persistence Interface

type InternalWorkflowExecutionInfo added in v0.4.0

type InternalWorkflowExecutionInfo struct {
	DomainID                     string
	WorkflowID                   string
	RunID                        string
	ParentDomainID               string
	ParentWorkflowID             string
	ParentRunID                  string
	InitiatedID                  int64
	CompletionEvent              *DataBlob
	TaskList                     string
	WorkflowTypeName             string
	WorkflowTimeout              int32
	DecisionTimeoutValue         int32
	ExecutionContext             []byte
	State                        int
	CloseStatus                  int
	LastFirstEventID             int64
	NextEventID                  int64
	LastProcessedEvent           int64
	StartTimestamp               time.Time
	LastUpdatedTimestamp         time.Time
	CreateRequestID              string
	SignalCount                  int32
	HistorySize                  int64
	DecisionVersion              int64
	DecisionScheduleID           int64
	DecisionStartedID            int64
	DecisionRequestID            string
	DecisionTimeout              int32
	DecisionAttempt              int64
	DecisionTimestamp            int64
	CancelRequested              bool
	CancelRequestID              string
	StickyTaskList               string
	StickyScheduleToStartTimeout int32
	ClientLibraryVersion         string
	ClientFeatureVersion         string
	ClientImpl                   string
	// for retry
	Attempt            int32
	HasRetryPolicy     bool
	InitialInterval    int32
	BackoffCoefficient float64
	MaximumInterval    int32
	ExpirationTime     time.Time
	MaximumAttempts    int32
	NonRetriableErrors []string
	// events V2 related
	EventStoreVersion int32
	BranchToken       []byte
	CronSchedule      string
	ExpirationSeconds int32
}

InternalWorkflowExecutionInfo describes a workflow execution for Persistence Interface

type InternalWorkflowMutableState added in v0.4.0

type InternalWorkflowMutableState struct {
	ActivitInfos             map[int64]*InternalActivityInfo
	TimerInfos               map[string]*TimerInfo
	ChildExecutionInfos      map[int64]*InternalChildExecutionInfo
	RequestCancelInfos       map[int64]*RequestCancelInfo
	SignalInfos              map[int64]*SignalInfo
	SignalRequestedIDs       map[string]struct{}
	ExecutionInfo            *InternalWorkflowExecutionInfo
	ReplicationState         *ReplicationState
	BufferedEvents           []*DataBlob
	BufferedReplicationTasks map[int64]*InternalBufferedReplicationTask
}

InternalWorkflowMutableState indicates workflow related state for Persistence Interface

type InvalidPersistenceRequestError added in v0.5.0

type InvalidPersistenceRequestError struct {
	Msg string
}

InvalidPersistenceRequestError represents invalid request to persistence

func (*InvalidPersistenceRequestError) Error added in v0.5.0

type LeaseTaskListRequest

type LeaseTaskListRequest struct {
	DomainID     string
	TaskList     string
	TaskType     int
	TaskListKind int
}

LeaseTaskListRequest is used to request lease of a task list

type LeaseTaskListResponse

type LeaseTaskListResponse struct {
	TaskListInfo *TaskListInfo
}

LeaseTaskListResponse is response to LeaseTaskListRequest

type ListClosedWorkflowExecutionsByStatusRequest

type ListClosedWorkflowExecutionsByStatusRequest struct {
	ListWorkflowExecutionsRequest
	Status s.WorkflowExecutionCloseStatus
}

ListClosedWorkflowExecutionsByStatusRequest is used to list executions that have specific close status

type ListDomainsRequest added in v0.3.14

type ListDomainsRequest struct {
	PageSize      int
	NextPageToken []byte
}

ListDomainsRequest is used to list domains

type ListDomainsResponse added in v0.3.14

type ListDomainsResponse struct {
	Domains       []*GetDomainResponse
	NextPageToken []byte
}

ListDomainsResponse is the response for GetDomain

type ListWorkflowExecutionsByTypeRequest

type ListWorkflowExecutionsByTypeRequest struct {
	ListWorkflowExecutionsRequest
	WorkflowTypeName string
}

ListWorkflowExecutionsByTypeRequest is used to list executions of a specific type in a domain

type ListWorkflowExecutionsByWorkflowIDRequest

type ListWorkflowExecutionsByWorkflowIDRequest struct {
	ListWorkflowExecutionsRequest
	WorkflowID string
}

ListWorkflowExecutionsByWorkflowIDRequest is used to list executions that have specific WorkflowID in a domain

type ListWorkflowExecutionsRequest

type ListWorkflowExecutionsRequest struct {
	DomainUUID        string
	Domain            string // domain name is not persisted, but used as config filter key
	EarliestStartTime int64
	LatestStartTime   int64
	// Maximum number of workflow executions per page
	PageSize int
	// Token to continue reading next page of workflow executions.
	// Pass in empty slice for first page.
	NextPageToken []byte
}

ListWorkflowExecutionsRequest is used to list executions in a domain

type ListWorkflowExecutionsResponse

type ListWorkflowExecutionsResponse struct {
	Executions []*s.WorkflowExecutionInfo
	// Token to read next page if there are more workflow executions beyond page size.
	// Use this to set NextPageToken on ListWorkflowExecutionsRequest to read the next page.
	NextPageToken []byte
}

ListWorkflowExecutionsResponse is the response to ListWorkflowExecutionsRequest

type MetadataManager

type MetadataManager interface {
	Closeable
	GetName() string
	CreateDomain(request *CreateDomainRequest) (*CreateDomainResponse, error)
	GetDomain(request *GetDomainRequest) (*GetDomainResponse, error)
	UpdateDomain(request *UpdateDomainRequest) error
	DeleteDomain(request *DeleteDomainRequest) error
	DeleteDomainByName(request *DeleteDomainByNameRequest) error
	ListDomains(request *ListDomainsRequest) (*ListDomainsResponse, error)
	GetMetadata() (*GetMetadataResponse, error)
}

MetadataManager is used to manage metadata CRUD for domain entities

func NewMetadataPersistenceMetricsClient added in v0.3.14

func NewMetadataPersistenceMetricsClient(persistence MetadataManager, metricClient metrics.Client, logger bark.Logger) MetadataManager

NewMetadataPersistenceMetricsClient creates a MetadataManager client to manage metadata

func NewMetadataPersistenceRateLimitedClient added in v0.3.14

func NewMetadataPersistenceRateLimitedClient(persistence MetadataManager, rateLimiter common.TokenBucket, logger bark.Logger) MetadataManager

NewMetadataPersistenceRateLimitedClient creates a MetadataManager client to manage metadata

type MetadataStore added in v0.4.0

type MetadataStore = MetadataManager

MetadataStore is a lower level of MetadataManager

type MutableStateStats added in v0.4.0

type MutableStateStats struct {
	// Total size of mutable state
	MutableStateSize int

	// Breakdown of size into more granular stats
	ExecutionInfoSize            int
	ActivityInfoSize             int
	TimerInfoSize                int
	ChildInfoSize                int
	SignalInfoSize               int
	BufferedEventsSize           int
	BufferedReplicationTasksSize int

	// Item count for various information captured within mutable state
	ActivityInfoCount             int
	TimerInfoCount                int
	ChildInfoCount                int
	SignalInfoCount               int
	RequestCancelInfoCount        int
	BufferedEventsCount           int
	BufferedReplicationTasksCount int
}

MutableStateStats is the size stats for MutableState

type MutableStateUpdateSessionStats added in v0.4.0

type MutableStateUpdateSessionStats struct {
	MutableStateSize int // Total size of mutable state update

	// Breakdown of mutable state size update for more granular stats
	ExecutionInfoSize            int
	ActivityInfoSize             int
	TimerInfoSize                int
	ChildInfoSize                int
	SignalInfoSize               int
	BufferedEventsSize           int
	BufferedReplicationTasksSize int

	// Item counts in this session update
	ActivityInfoCount      int
	TimerInfoCount         int
	ChildInfoCount         int
	SignalInfoCount        int
	RequestCancelInfoCount int

	// Deleted item counts in this session update
	DeleteActivityInfoCount      int
	DeleteTimerInfoCount         int
	DeleteChildInfoCount         int
	DeleteSignalInfoCount        int
	DeleteRequestCancelInfoCount int
}

MutableStateUpdateSessionStats is size stats for mutableState updating session

type RangeCompleteTimerTaskRequest added in v0.4.0

type RangeCompleteTimerTaskRequest struct {
	InclusiveBeginTimestamp time.Time
	ExclusiveEndTimestamp   time.Time
}

RangeCompleteTimerTaskRequest is used to complete a range of tasks in the timer task queue

type RangeCompleteTransferTaskRequest added in v0.4.0

type RangeCompleteTransferTaskRequest struct {
	ExclusiveBeginTaskID int64
	InclusiveEndTaskID   int64
}

RangeCompleteTransferTaskRequest is used to complete a range of tasks in the transfer task queue

type ReadHistoryBranchByBatchResponse added in v0.5.0

type ReadHistoryBranchByBatchResponse struct {
	// History events by batch
	History []*workflow.History
	// Token to read next page if there are more events beyond page size.
	// Use this to set NextPageToken on ReadHistoryBranchRequest to read the next page.
	// Empty means we have reached the last page, not need to continue
	NextPageToken []byte
	// Size of history read from store
	Size int
	// the first_event_id of last loaded batch
	LastFirstEventID int64
}

ReadHistoryBranchByBatchResponse is the response to ReadHistoryBranchRequest

type ReadHistoryBranchRequest added in v0.5.0

type ReadHistoryBranchRequest struct {
	// The branch to be read
	BranchToken []byte
	// Get the history nodes from MinEventID. Inclusive.
	MinEventID int64
	// Get the history nodes upto MaxEventID.  Exclusive.
	MaxEventID int64
	// Maximum number of batches of events per page. Not that number of events in a batch >=1, it is not number of events per page.
	// However for a single page, it is also possible that the returned events is less than PageSize (event zero events) due to stale events.
	PageSize int
	// Token to continue reading next page of history append transactions.  Pass in empty slice for first page
	NextPageToken []byte
}

ReadHistoryBranchRequest is used to read a history branch

type ReadHistoryBranchResponse added in v0.5.0

type ReadHistoryBranchResponse struct {
	// History events
	HistoryEvents []*workflow.HistoryEvent
	// Token to read next page if there are more events beyond page size.
	// Use this to set NextPageToken on ReadHistoryBranchRequest to read the next page.
	// Empty means we have reached the last page, not need to continue
	NextPageToken []byte
	// Size of history read from store
	Size int
	// the first_event_id of last loaded batch
	LastFirstEventID int64
}

ReadHistoryBranchResponse is the response to ReadHistoryBranchRequest

type RecordWorkflowExecutionClosedRequest

type RecordWorkflowExecutionClosedRequest struct {
	DomainUUID       string
	Domain           string // domain name is not persisted, but used as config filter key
	Execution        s.WorkflowExecution
	WorkflowTypeName string
	StartTimestamp   int64
	CloseTimestamp   int64
	Status           s.WorkflowExecutionCloseStatus
	HistoryLength    int64
	RetentionSeconds int64
}

RecordWorkflowExecutionClosedRequest is used to add a record of a newly closed execution

type RecordWorkflowExecutionStartedRequest

type RecordWorkflowExecutionStartedRequest struct {
	DomainUUID       string
	Domain           string // domain name is not persisted, but used as config filter key
	Execution        s.WorkflowExecution
	WorkflowTypeName string
	StartTimestamp   int64
	WorkflowTimeout  int64
}

RecordWorkflowExecutionStartedRequest is used to add a record of a newly started execution

type ReplicationInfo added in v0.3.11

type ReplicationInfo struct {
	Version     int64
	LastEventID int64
}

ReplicationInfo represents the information stored for last replication event details per cluster

type ReplicationState added in v0.3.11

type ReplicationState struct {
	CurrentVersion      int64
	StartVersion        int64
	LastWriteVersion    int64
	LastWriteEventID    int64
	LastReplicationInfo map[string]*ReplicationInfo
}

ReplicationState represents mutable state information for global domains. This information is used by replication protocol when applying events from remote clusters

type ReplicationTaskInfo added in v0.3.11

type ReplicationTaskInfo struct {
	DomainID                string
	WorkflowID              string
	RunID                   string
	TaskID                  int64
	TaskType                int
	FirstEventID            int64
	NextEventID             int64
	Version                 int64
	LastReplicationInfo     map[string]*ReplicationInfo
	ScheduledID             int64
	EventStoreVersion       int32
	BranchToken             []byte
	NewRunEventStoreVersion int32
	NewRunBranchToken       []byte
}

ReplicationTaskInfo describes the replication task created for replication of history events

func (*ReplicationTaskInfo) GetTaskID added in v0.3.11

func (t *ReplicationTaskInfo) GetTaskID() int64

GetTaskID returns the task ID for replication task

func (*ReplicationTaskInfo) GetTaskType added in v0.3.11

func (t *ReplicationTaskInfo) GetTaskType() int

GetTaskType returns the task type for replication task

func (*ReplicationTaskInfo) GetVersion added in v0.3.12

func (t *ReplicationTaskInfo) GetVersion() int64

GetVersion returns the task version for replication task

func (*ReplicationTaskInfo) GetVisibilityTimestamp added in v0.3.14

func (t *ReplicationTaskInfo) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp returns the task type for transfer task

type RequestCancelInfo

type RequestCancelInfo struct {
	Version         int64
	InitiatedID     int64
	CancelRequestID string
}

RequestCancelInfo has details for pending external workflow cancellations

type ResetMutableStateRequest added in v0.3.12

type ResetMutableStateRequest struct {
	PrevRunID        string
	ExecutionInfo    *WorkflowExecutionInfo
	ReplicationState *ReplicationState
	Condition        int64
	RangeID          int64

	// Mutable state
	InsertActivityInfos       []*ActivityInfo
	InsertTimerInfos          []*TimerInfo
	InsertChildExecutionInfos []*ChildExecutionInfo
	InsertRequestCancelInfos  []*RequestCancelInfo
	InsertSignalInfos         []*SignalInfo
	InsertSignalRequestedIDs  []string
	//Optional. It is to suggest a binary encoding type to serialize history events
	Encoding common.EncodingType
}

ResetMutableStateRequest is used to reset workflow execution state

type ShardAlreadyExistError

type ShardAlreadyExistError struct {
	Msg string
}

ShardAlreadyExistError is returned when conditionally creating a shard fails

func (*ShardAlreadyExistError) Error

func (e *ShardAlreadyExistError) Error() string

type ShardInfo

type ShardInfo struct {
	ShardID                   int
	Owner                     string
	RangeID                   int64
	StolenSinceRenew          int
	UpdatedAt                 time.Time
	ReplicationAckLevel       int64
	TransferAckLevel          int64
	TimerAckLevel             time.Time
	ClusterTransferAckLevel   map[string]int64
	ClusterTimerAckLevel      map[string]time.Time
	TransferFailoverLevels    map[string]TransferFailoverLevel // uuid -> TransferFailoverLevel
	TimerFailoverLevels       map[string]TimerFailoverLevel    // uuid -> TimerFailoverLevel
	DomainNotificationVersion int64
}

ShardInfo describes a shard

type ShardManager

type ShardManager interface {
	Closeable
	GetName() string
	CreateShard(request *CreateShardRequest) error
	GetShard(request *GetShardRequest) (*GetShardResponse, error)
	UpdateShard(request *UpdateShardRequest) error
}

ShardManager is used to manage all shards

func NewShardPersistenceMetricsClient added in v0.3.14

func NewShardPersistenceMetricsClient(persistence ShardManager, metricClient metrics.Client, logger bark.Logger) ShardManager

NewShardPersistenceMetricsClient creates a client to manage shards

func NewShardPersistenceRateLimitedClient added in v0.3.14

func NewShardPersistenceRateLimitedClient(persistence ShardManager, rateLimiter common.TokenBucket, logger bark.Logger) ShardManager

NewShardPersistenceRateLimitedClient creates a client to manage shards

type ShardOwnershipLostError

type ShardOwnershipLostError struct {
	ShardID int
	Msg     string
}

ShardOwnershipLostError is returned when conditional update fails due to RangeID for the shard

func (*ShardOwnershipLostError) Error

func (e *ShardOwnershipLostError) Error() string

type ShardStore added in v0.4.0

type ShardStore = ShardManager

ShardStore is a lower level of ShardManager

type SignalExecutionTask added in v0.3.6

type SignalExecutionTask struct {
	VisibilityTimestamp     time.Time
	TaskID                  int64
	TargetDomainID          string
	TargetWorkflowID        string
	TargetRunID             string
	TargetChildWorkflowOnly bool
	InitiatedID             int64
	Version                 int64
}

SignalExecutionTask identifies a transfer task for signal execution

func (*SignalExecutionTask) GetTaskID added in v0.3.6

func (u *SignalExecutionTask) GetTaskID() int64

GetTaskID returns the sequence ID of the signal transfer task.

func (*SignalExecutionTask) GetType added in v0.3.6

func (u *SignalExecutionTask) GetType() int

GetType returns the type of the signal transfer task

func (*SignalExecutionTask) GetVersion added in v0.3.12

func (u *SignalExecutionTask) GetVersion() int64

GetVersion returns the version of the signal transfer task

func (*SignalExecutionTask) GetVisibilityTimestamp added in v0.3.14

func (u *SignalExecutionTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*SignalExecutionTask) SetTaskID added in v0.3.6

func (u *SignalExecutionTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the signal transfer task.

func (*SignalExecutionTask) SetVersion added in v0.3.12

func (u *SignalExecutionTask) SetVersion(version int64)

SetVersion returns the version of the signal transfer task

func (*SignalExecutionTask) SetVisibilityTimestamp added in v0.3.14

func (u *SignalExecutionTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type SignalInfo added in v0.3.6

type SignalInfo struct {
	Version         int64
	InitiatedID     int64
	SignalRequestID string
	SignalName      string
	Input           []byte
	Control         []byte
}

SignalInfo has details for pending external workflow signal

type StartChildExecutionTask

type StartChildExecutionTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	TargetDomainID      string
	TargetWorkflowID    string
	InitiatedID         int64
	Version             int64
}

StartChildExecutionTask identifies a transfer task for starting child execution

func (*StartChildExecutionTask) GetTaskID

func (u *StartChildExecutionTask) GetTaskID() int64

GetTaskID returns the sequence ID of the start child transfer task

func (*StartChildExecutionTask) GetType

func (u *StartChildExecutionTask) GetType() int

GetType returns the type of the start child transfer task

func (*StartChildExecutionTask) GetVersion added in v0.3.12

func (u *StartChildExecutionTask) GetVersion() int64

GetVersion returns the version of the start child transfer task

func (*StartChildExecutionTask) GetVisibilityTimestamp added in v0.3.14

func (u *StartChildExecutionTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*StartChildExecutionTask) SetTaskID

func (u *StartChildExecutionTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the start child transfer task

func (*StartChildExecutionTask) SetVersion added in v0.3.12

func (u *StartChildExecutionTask) SetVersion(version int64)

SetVersion returns the version of the start child transfer task

func (*StartChildExecutionTask) SetVisibilityTimestamp added in v0.3.14

func (u *StartChildExecutionTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type SyncActivityTask added in v0.4.0

type SyncActivityTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	Version             int64
	ScheduledID         int64
}

SyncActivityTask is the replication task created for shipping activity info to other clusters

func (*SyncActivityTask) GetTaskID added in v0.4.0

func (a *SyncActivityTask) GetTaskID() int64

GetTaskID returns the sequence ID of the history replication task

func (*SyncActivityTask) GetType added in v0.4.0

func (a *SyncActivityTask) GetType() int

GetType returns the type of the history replication task

func (*SyncActivityTask) GetVersion added in v0.4.0

func (a *SyncActivityTask) GetVersion() int64

GetVersion returns the version of the history replication task

func (*SyncActivityTask) GetVisibilityTimestamp added in v0.4.0

func (a *SyncActivityTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp get the visibility timestamp

func (*SyncActivityTask) SetTaskID added in v0.4.0

func (a *SyncActivityTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the history replication task

func (*SyncActivityTask) SetVersion added in v0.4.0

func (a *SyncActivityTask) SetVersion(version int64)

SetVersion returns the version of the history replication task

func (*SyncActivityTask) SetVisibilityTimestamp added in v0.4.0

func (a *SyncActivityTask) SetVisibilityTimestamp(timestamp time.Time)

SetVisibilityTimestamp set the visibility timestamp

type Task

type Task interface {
	GetType() int
	GetVersion() int64
	SetVersion(version int64)
	GetTaskID() int64
	SetTaskID(id int64)
	GetVisibilityTimestamp() time.Time
	SetVisibilityTimestamp(timestamp time.Time)
}

Task is the generic interface for workflow tasks

type TaskInfo

type TaskInfo struct {
	DomainID               string
	WorkflowID             string
	RunID                  string
	TaskID                 int64
	ScheduleID             int64
	ScheduleToStartTimeout int32
}

TaskInfo describes either activity or decision task

type TaskListInfo

type TaskListInfo struct {
	DomainID string
	Name     string
	TaskType int
	RangeID  int64
	AckLevel int64
	Kind     int
}

TaskListInfo describes a state of a task list implementation.

type TaskManager

type TaskManager interface {
	Closeable
	GetName() string
	LeaseTaskList(request *LeaseTaskListRequest) (*LeaseTaskListResponse, error)
	UpdateTaskList(request *UpdateTaskListRequest) (*UpdateTaskListResponse, error)
	CreateTasks(request *CreateTasksRequest) (*CreateTasksResponse, error)
	GetTasks(request *GetTasksRequest) (*GetTasksResponse, error)
	CompleteTask(request *CompleteTaskRequest) error
}

TaskManager is used to manage tasks

func NewTaskPersistenceMetricsClient added in v0.3.14

func NewTaskPersistenceMetricsClient(persistence TaskManager, metricClient metrics.Client, logger bark.Logger) TaskManager

NewTaskPersistenceMetricsClient creates a client to manage tasks

func NewTaskPersistenceRateLimitedClient added in v0.3.14

func NewTaskPersistenceRateLimitedClient(persistence TaskManager, rateLimiter common.TokenBucket, logger bark.Logger) TaskManager

NewTaskPersistenceRateLimitedClient creates a client to manage tasks

type TaskStore added in v0.4.0

type TaskStore = TaskManager

TaskStore is a lower level of TaskManager

type TimeoutError

type TimeoutError struct {
	Msg string
}

TimeoutError is returned when a write operation fails due to a timeout

func (*TimeoutError) Error

func (e *TimeoutError) Error() string

type TimerFailoverLevel added in v0.3.14

type TimerFailoverLevel struct {
	StartTime    time.Time
	MinLevel     time.Time
	CurrentLevel time.Time
	MaxLevel     time.Time
	DomainIDs    map[string]struct{}
}

TimerFailoverLevel contains domain IDs and corresponding start / end level

type TimerInfo

type TimerInfo struct {
	Version    int64
	TimerID    string
	StartedID  int64
	ExpiryTime time.Time
	TaskID     int64
}

TimerInfo details - metadata about user timer info.

type TimerTaskInfo

type TimerTaskInfo struct {
	DomainID            string
	WorkflowID          string
	RunID               string
	VisibilityTimestamp time.Time
	TaskID              int64
	TaskType            int
	TimeoutType         int
	EventID             int64
	ScheduleAttempt     int64
	Version             int64
}

TimerTaskInfo describes a timer task.

func (*TimerTaskInfo) GetTaskID added in v0.3.12

func (t *TimerTaskInfo) GetTaskID() int64

GetTaskID returns the task ID for timer task

func (*TimerTaskInfo) GetTaskType added in v0.3.12

func (t *TimerTaskInfo) GetTaskType() int

GetTaskType returns the task type for timer task

func (*TimerTaskInfo) GetVersion added in v0.3.12

func (t *TimerTaskInfo) GetVersion() int64

GetVersion returns the task version for timer task

func (*TimerTaskInfo) GetVisibilityTimestamp added in v0.3.14

func (t *TimerTaskInfo) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp returns the task type for timer task

func (*TimerTaskInfo) String added in v0.3.14

func (t *TimerTaskInfo) String() string

GetTaskType returns the task type for timer task

type TransferFailoverLevel added in v0.3.14

type TransferFailoverLevel struct {
	StartTime    time.Time
	MinLevel     int64
	CurrentLevel int64
	MaxLevel     int64
	DomainIDs    map[string]struct{}
}

TransferFailoverLevel contains corresponding start / end level

type TransferTaskInfo

type TransferTaskInfo struct {
	DomainID                string
	WorkflowID              string
	RunID                   string
	VisibilityTimestamp     time.Time
	TaskID                  int64
	TargetDomainID          string
	TargetWorkflowID        string
	TargetRunID             string
	TargetChildWorkflowOnly bool
	TaskList                string
	TaskType                int
	ScheduleID              int64
	Version                 int64
}

TransferTaskInfo describes a transfer task

func (*TransferTaskInfo) GetTaskID added in v0.3.11

func (t *TransferTaskInfo) GetTaskID() int64

GetTaskID returns the task ID for transfer task

func (*TransferTaskInfo) GetTaskType added in v0.3.11

func (t *TransferTaskInfo) GetTaskType() int

GetTaskType returns the task type for transfer task

func (*TransferTaskInfo) GetVersion added in v0.3.12

func (t *TransferTaskInfo) GetVersion() int64

GetVersion returns the task version for transfer task

func (*TransferTaskInfo) GetVisibilityTimestamp added in v0.3.14

func (t *TransferTaskInfo) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp returns the task type for transfer task

func (*TransferTaskInfo) String added in v0.3.14

func (t *TransferTaskInfo) String() string

String returns string

type UnknownEncodingTypeError

type UnknownEncodingTypeError struct {
	// contains filtered or unexported fields
}

UnknownEncodingTypeError is an error type that's returned when the encoding type provided as input is unknown or unsupported

func (*UnknownEncodingTypeError) Error

func (e *UnknownEncodingTypeError) Error() string

type UpdateDomainRequest

type UpdateDomainRequest struct {
	Info                        *DomainInfo
	Config                      *DomainConfig
	ReplicationConfig           *DomainReplicationConfig
	ConfigVersion               int64
	FailoverVersion             int64
	FailoverNotificationVersion int64
	NotificationVersion         int64
	TableVersion                int
}

UpdateDomainRequest is used to update domain

type UpdateShardRequest

type UpdateShardRequest struct {
	ShardInfo       *ShardInfo
	PreviousRangeID int64
}

UpdateShardRequest is used to update shard information

type UpdateTaskListRequest

type UpdateTaskListRequest struct {
	TaskListInfo *TaskListInfo
}

UpdateTaskListRequest is used to update task list implementation information

type UpdateTaskListResponse

type UpdateTaskListResponse struct {
}

UpdateTaskListResponse is the response to UpdateTaskList

type UpdateWorkflowExecutionRequest

type UpdateWorkflowExecutionRequest struct {
	ExecutionInfo        *WorkflowExecutionInfo
	ReplicationState     *ReplicationState
	TransferTasks        []Task
	TimerTasks           []Task
	ReplicationTasks     []Task
	DeleteTimerTask      Task
	Condition            int64
	RangeID              int64
	ContinueAsNew        *CreateWorkflowExecutionRequest
	FinishExecution      bool
	FinishedExecutionTTL int32

	// Mutable state
	UpsertActivityInfos           []*ActivityInfo
	DeleteActivityInfos           []int64
	UpserTimerInfos               []*TimerInfo
	DeleteTimerInfos              []string
	UpsertChildExecutionInfos     []*ChildExecutionInfo
	DeleteChildExecutionInfo      *int64
	UpsertRequestCancelInfos      []*RequestCancelInfo
	DeleteRequestCancelInfo       *int64
	UpsertSignalInfos             []*SignalInfo
	DeleteSignalInfo              *int64
	UpsertSignalRequestedIDs      []string
	DeleteSignalRequestedID       string
	NewBufferedEvents             []*workflow.HistoryEvent
	ClearBufferedEvents           bool
	NewBufferedReplicationTask    *BufferedReplicationTask
	DeleteBufferedReplicationTask *int64
	//Optional. It is to suggest a binary encoding type to serialize history events
	Encoding common.EncodingType
}

UpdateWorkflowExecutionRequest is used to update a workflow execution

type UpdateWorkflowExecutionResponse added in v0.4.0

type UpdateWorkflowExecutionResponse struct {
	MutableStateUpdateSessionStats *MutableStateUpdateSessionStats
}

UpdateWorkflowExecutionResponse is response for UpdateWorkflowExecutionRequest

type UserTimerTask

type UserTimerTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	EventID             int64
	Version             int64
}

UserTimerTask identifies a timeout task.

func (*UserTimerTask) GetTaskID

func (u *UserTimerTask) GetTaskID() int64

GetTaskID returns the sequence ID of the timer task.

func (*UserTimerTask) GetType

func (u *UserTimerTask) GetType() int

GetType returns the type of the timer task

func (*UserTimerTask) GetVersion added in v0.3.12

func (u *UserTimerTask) GetVersion() int64

GetVersion returns the version of the timer task

func (*UserTimerTask) GetVisibilityTimestamp

func (u *UserTimerTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*UserTimerTask) SetTaskID

func (u *UserTimerTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the timer task.

func (*UserTimerTask) SetVersion added in v0.3.12

func (u *UserTimerTask) SetVersion(version int64)

SetVersion returns the version of the timer task

func (*UserTimerTask) SetVisibilityTimestamp

func (u *UserTimerTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

type VisibilityManager

type VisibilityManager interface {
	Closeable
	GetName() string
	RecordWorkflowExecutionStarted(request *RecordWorkflowExecutionStartedRequest) error
	RecordWorkflowExecutionClosed(request *RecordWorkflowExecutionClosedRequest) error
	ListOpenWorkflowExecutions(request *ListWorkflowExecutionsRequest) (*ListWorkflowExecutionsResponse, error)
	ListClosedWorkflowExecutions(request *ListWorkflowExecutionsRequest) (*ListWorkflowExecutionsResponse, error)
	ListOpenWorkflowExecutionsByType(request *ListWorkflowExecutionsByTypeRequest) (*ListWorkflowExecutionsResponse, error)
	ListClosedWorkflowExecutionsByType(request *ListWorkflowExecutionsByTypeRequest) (*ListWorkflowExecutionsResponse, error)
	ListOpenWorkflowExecutionsByWorkflowID(request *ListWorkflowExecutionsByWorkflowIDRequest) (*ListWorkflowExecutionsResponse, error)
	ListClosedWorkflowExecutionsByWorkflowID(request *ListWorkflowExecutionsByWorkflowIDRequest) (*ListWorkflowExecutionsResponse, error)
	ListClosedWorkflowExecutionsByStatus(request *ListClosedWorkflowExecutionsByStatusRequest) (*ListWorkflowExecutionsResponse, error)
	GetClosedWorkflowExecution(request *GetClosedWorkflowExecutionRequest) (*GetClosedWorkflowExecutionResponse, error)
}

VisibilityManager is used to manage the visibility store

func NewVisibilityPersistenceMetricsClient added in v0.3.14

func NewVisibilityPersistenceMetricsClient(persistence VisibilityManager, metricClient metrics.Client, logger bark.Logger) VisibilityManager

NewVisibilityPersistenceMetricsClient creates a client to manage visibility

func NewVisibilityPersistenceRateLimitedClient added in v0.3.14

func NewVisibilityPersistenceRateLimitedClient(persistence VisibilityManager, rateLimiter common.TokenBucket, logger bark.Logger) VisibilityManager

NewVisibilityPersistenceRateLimitedClient creates a client to manage visibility

func NewVisibilitySamplingClient added in v0.5.0

func NewVisibilitySamplingClient(persistence VisibilityManager, config *config.SamplingConfig, metricClient metrics.Client, logger bark.Logger) VisibilityManager

NewVisibilitySamplingClient creates a client to manage visibility with sampling

type VisibilityStore added in v0.4.0

type VisibilityStore = VisibilityManager

VisibilityStore is the store interface for visibility

type WorkflowBackoffTimerTask added in v0.5.0

type WorkflowBackoffTimerTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	EventID             int64
	Version             int64
	TimeoutType         int // 0 for retry, 1 for cron.
}

WorkflowBackoffTimerTask to schedule first decision task for retried workflow

func (*WorkflowBackoffTimerTask) GetTaskID added in v0.5.0

func (r *WorkflowBackoffTimerTask) GetTaskID() int64

GetTaskID returns the sequence ID.

func (*WorkflowBackoffTimerTask) GetType added in v0.5.0

func (r *WorkflowBackoffTimerTask) GetType() int

GetType returns the type of the retry timer task

func (*WorkflowBackoffTimerTask) GetVersion added in v0.5.0

func (r *WorkflowBackoffTimerTask) GetVersion() int64

GetVersion returns the version of the retry timer task

func (*WorkflowBackoffTimerTask) GetVisibilityTimestamp added in v0.5.0

func (r *WorkflowBackoffTimerTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*WorkflowBackoffTimerTask) SetTaskID added in v0.5.0

func (r *WorkflowBackoffTimerTask) SetTaskID(id int64)

SetTaskID sets the sequence ID.

func (*WorkflowBackoffTimerTask) SetVersion added in v0.5.0

func (r *WorkflowBackoffTimerTask) SetVersion(version int64)

SetVersion returns the version of the retry timer task

func (*WorkflowBackoffTimerTask) SetVisibilityTimestamp added in v0.5.0

func (r *WorkflowBackoffTimerTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

type WorkflowExecutionAlreadyStartedError added in v0.3.5

type WorkflowExecutionAlreadyStartedError struct {
	Msg              string
	StartRequestID   string
	RunID            string
	State            int
	CloseStatus      int
	LastWriteVersion int64
}

WorkflowExecutionAlreadyStartedError is returned when creating a new workflow failed.

func (*WorkflowExecutionAlreadyStartedError) Error added in v0.3.5

type WorkflowExecutionInfo

type WorkflowExecutionInfo struct {
	DomainID                     string
	WorkflowID                   string
	RunID                        string
	ParentDomainID               string
	ParentWorkflowID             string
	ParentRunID                  string
	InitiatedID                  int64
	CompletionEvent              *workflow.HistoryEvent
	TaskList                     string
	WorkflowTypeName             string
	WorkflowTimeout              int32
	DecisionTimeoutValue         int32
	ExecutionContext             []byte
	State                        int
	CloseStatus                  int
	LastFirstEventID             int64
	NextEventID                  int64
	LastProcessedEvent           int64
	StartTimestamp               time.Time
	LastUpdatedTimestamp         time.Time
	CreateRequestID              string
	SignalCount                  int32
	HistorySize                  int64
	DecisionVersion              int64
	DecisionScheduleID           int64
	DecisionStartedID            int64
	DecisionRequestID            string
	DecisionTimeout              int32
	DecisionAttempt              int64
	DecisionTimestamp            int64
	CancelRequested              bool
	CancelRequestID              string
	StickyTaskList               string
	StickyScheduleToStartTimeout int32
	ClientLibraryVersion         string
	ClientFeatureVersion         string
	ClientImpl                   string
	// for retry
	Attempt            int32
	HasRetryPolicy     bool
	InitialInterval    int32
	BackoffCoefficient float64
	MaximumInterval    int32
	ExpirationTime     time.Time
	MaximumAttempts    int32
	NonRetriableErrors []string
	// events V2 related
	EventStoreVersion int32
	BranchToken       []byte
	CronSchedule      string
	ExpirationSeconds int32
}

WorkflowExecutionInfo describes a workflow execution

func (*WorkflowExecutionInfo) GetCurrentBranch added in v0.5.0

func (e *WorkflowExecutionInfo) GetCurrentBranch() []byte

GetCurrentBranch return the current branch token

func (*WorkflowExecutionInfo) IncreaseHistorySize added in v0.5.0

func (e *WorkflowExecutionInfo) IncreaseHistorySize(delta int64)

IncreaseHistorySize increase historySize by delta

func (*WorkflowExecutionInfo) IncreaseNextEventID added in v0.5.0

func (e *WorkflowExecutionInfo) IncreaseNextEventID()

IncreaseNextEventID increase the nextEventID by 1

func (*WorkflowExecutionInfo) SetHistorySize added in v0.5.0

func (e *WorkflowExecutionInfo) SetHistorySize(size int64)

SetHistorySize set the historySize

func (*WorkflowExecutionInfo) SetLastFirstEventID added in v0.5.0

func (e *WorkflowExecutionInfo) SetLastFirstEventID(id int64)

SetLastFirstEventID set the LastFirstEventID

func (*WorkflowExecutionInfo) SetNextEventID added in v0.5.0

func (e *WorkflowExecutionInfo) SetNextEventID(id int64)

SetNextEventID sets the nextEventID

type WorkflowMutableState

type WorkflowMutableState struct {
	ActivityInfos            map[int64]*ActivityInfo
	TimerInfos               map[string]*TimerInfo
	ChildExecutionInfos      map[int64]*ChildExecutionInfo
	RequestCancelInfos       map[int64]*RequestCancelInfo
	SignalInfos              map[int64]*SignalInfo
	SignalRequestedIDs       map[string]struct{}
	ExecutionInfo            *WorkflowExecutionInfo
	ReplicationState         *ReplicationState
	BufferedEvents           []*workflow.HistoryEvent
	BufferedReplicationTasks map[int64]*BufferedReplicationTask
}

WorkflowMutableState indicates workflow related state

type WorkflowTimeoutTask

type WorkflowTimeoutTask struct {
	VisibilityTimestamp time.Time
	TaskID              int64
	Version             int64
}

WorkflowTimeoutTask identifies a timeout task.

func (*WorkflowTimeoutTask) GetTaskID

func (u *WorkflowTimeoutTask) GetTaskID() int64

GetTaskID returns the sequence ID of the cancel transfer task.

func (*WorkflowTimeoutTask) GetType

func (u *WorkflowTimeoutTask) GetType() int

GetType returns the type of the timeout task.

func (*WorkflowTimeoutTask) GetVersion added in v0.3.12

func (u *WorkflowTimeoutTask) GetVersion() int64

GetVersion returns the version of the timeout task

func (*WorkflowTimeoutTask) GetVisibilityTimestamp

func (u *WorkflowTimeoutTask) GetVisibilityTimestamp() time.Time

GetVisibilityTimestamp gets the visibility time stamp

func (*WorkflowTimeoutTask) SetTaskID

func (u *WorkflowTimeoutTask) SetTaskID(id int64)

SetTaskID sets the sequence ID of the cancel transfer task.

func (*WorkflowTimeoutTask) SetVersion added in v0.3.12

func (u *WorkflowTimeoutTask) SetVersion(version int64)

SetVersion returns the version of the timeout task

func (*WorkflowTimeoutTask) SetVisibilityTimestamp

func (u *WorkflowTimeoutTask) SetVisibilityTimestamp(t time.Time)

SetVisibilityTimestamp gets the visibility time stamp

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL