common

package
v0.8.6 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2019 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// FirstEventID is the id of the first event in the history
	FirstEventID int64 = 1
	// EmptyEventID is the id of the empty event
	EmptyEventID int64 = -23
	// EmptyVersion is used as the default value for failover version when no value is provided
	EmptyVersion int64 = -24
	// EndEventID is the id of the end event, here we use the int64 max
	EndEventID int64 = 1<<63 - 1
	// BufferedEventID is the id of the buffered event
	BufferedEventID int64 = -123
	// EmptyEventTaskID is uninitialized id of the task id within event
	EmptyEventTaskID int64 = -1234
	// TransientEventID is the id of the transient event
	TransientEventID int64 = -124
	// FirstBlobPageToken is the page token identifying the first blob for each history archival
	FirstBlobPageToken = 1
	// LastBlobNextPageToken is the next page token on the last blob for each history archival
	LastBlobNextPageToken = -1
)
View Source
const (
	// FrontendServiceName is the name of the frontend service
	FrontendServiceName = "cadence-frontend"
	// HistoryServiceName is the name of the history service
	HistoryServiceName = "cadence-history"
	// MatchingServiceName is the name of the matching service
	MatchingServiceName = "cadence-matching"
	// WorkerServiceName is the name of the worker service
	WorkerServiceName = "cadence-worker"
)
View Source
const (
	// SystemGlobalDomainName is global domain name for cadence system workflows running globally
	SystemGlobalDomainName = "cadence-system-global"
	// SystemLocalDomainName is domain name for cadence system workflows running in local cluster
	SystemLocalDomainName = "cadence-system"
	// SystemDomainID is domain id for all cadence system workflows
	SystemDomainID = "32049b68-7872-4094-8e63-d0dd59896a83"
	// SystemDomainRetentionDays is retention config for all cadence system workflows
	SystemDomainRetentionDays = 7
	// DefaultAdminOperationToken is the default dynamic config value for AdminOperationToken
	DefaultAdminOperationToken = "CadenceTeamONLY"
)
View Source
const (
	// MinLongPollTimeout is the minimum context timeout for long poll API, below which
	// the request won't be processed
	MinLongPollTimeout = time.Second * 2
	// CriticalLongPollTimeout is a threshold for the context timeout passed into long poll API,
	// below which a warning will be logged
	CriticalLongPollTimeout = time.Second * 20
)
View Source
const (
	// ArchivalEnabled is the status for enabling archival
	ArchivalEnabled = "enabled"
	// ArchivalDisabled is the status for disabling archival
	ArchivalDisabled = "disabled"
	// ArchivalPaused is the status for pausing archival
	ArchivalPaused = "paused"
)
View Source
const (

	// DaemonStatusInitialized coroutine pool initialized
	DaemonStatusInitialized int32 = 0
	// DaemonStatusStarted coroutine pool started
	DaemonStatusStarted int32 = 1
	// DaemonStatusStopped coroutine pool stopped
	DaemonStatusStopped int32 = 2
)
View Source
const (
	// LibraryVersionHeaderName refers to the name of the
	// tchannel / http header that contains the client
	// library version
	LibraryVersionHeaderName = "cadence-client-library-version"

	// FeatureVersionHeaderName refers to the name of the
	// tchannel / http header that contains the client
	// feature version
	// the feature version sent from client represents the
	// feature set of the cadence client library support.
	// This can be used for client capibility check, on
	// Cadence server, for backward compatibility
	FeatureVersionHeaderName = "cadence-client-feature-version"

	// ClientImplHeaderName refers to the name of the
	// header that contains the client implementation
	ClientImplHeaderName = "cadence-client-name"
	// EnforceDCRedirection refers to a boolean string of whether
	// to enforce DCRedirection(auto-forwarding)
	// Will be removed in the future: https://github.com/uber/cadence/issues/2304
	EnforceDCRedirection = "cadence-enforce-dc-redirection"
)
View Source
const (

	// FailureReasonCompleteResultExceedsLimit is failureReason for complete result exceeds limit
	FailureReasonCompleteResultExceedsLimit = "COMPLETE_RESULT_EXCEEDS_LIMIT"
	// FailureReasonFailureDetailsExceedsLimit is failureReason for failure details exceeds limit
	FailureReasonFailureDetailsExceedsLimit = "FAILURE_DETAILS_EXCEEDS_LIMIT"
	// FailureReasonCancelDetailsExceedsLimit is failureReason for cancel details exceeds limit
	FailureReasonCancelDetailsExceedsLimit = "CANCEL_DETAILS_EXCEEDS_LIMIT"
	// FailureReasonHeartbeatExceedsLimit is failureReason for heartbeat exceeds limit
	FailureReasonHeartbeatExceedsLimit = "HEARTBEAT_EXCEEDS_LIMIT"
	// FailureReasonDecisionBlobSizeExceedsLimit is the failureReason for decision blob exceeds size limit
	FailureReasonDecisionBlobSizeExceedsLimit = "DECISION_BLOB_SIZE_EXCEEDS_LIMIT"
	// FailureReasonSizeExceedsLimit is reason to fail workflow when history size or count exceed limit
	FailureReasonSizeExceedsLimit = "HISTORY_EXCEEDS_LIMIT"
	// FailureReasonTransactionSizeExceedsLimit is the failureReason for when transaction cannot be committed because it exceeds size limit
	FailureReasonTransactionSizeExceedsLimit = "TRANSACTION_SIZE_EXCEEDS_LIMIT"
)
View Source
const (
	// DefaultTransactionSizeLimit is the largest allowed transaction size to persistence
	DefaultTransactionSizeLimit = 14 * 1024 * 1024
)
View Source
const (
	// GetHistoryMaxPageSize is the max page size for get history
	GetHistoryMaxPageSize = 1000
)
View Source
const MaxTaskTimeout = 31622400

MaxTaskTimeout is maximum task timeout allowed. 366 days in seconds

View Source
const (
	// VisibilityAppName is used to find kafka topics and ES indexName for visibility
	VisibilityAppName = "visibility"
)

Variables

View Source
var (
	// ErrBlobSizeExceedsLimit is error for event blob size exceeds limit
	ErrBlobSizeExceedsLimit = &workflow.BadRequestError{Message: "Blob data size exceeds limit."}
	// ErrContextTimeoutTooShort is error for setting a very short context timeout when calling a long poll API
	ErrContextTimeoutTooShort = &workflow.BadRequestError{Message: "Context timeout is too short."}
	// ErrContextTimeoutNotSet is error for not setting a context timeout when calling a long poll API
	ErrContextTimeoutNotSet = &workflow.BadRequestError{Message: "Context timeout is not set."}
)

Functions

func ActivityTypePtr

func ActivityTypePtr(v s.ActivityType) *s.ActivityType

ActivityTypePtr makes a copy and returns the pointer to a ActivityType.

func AddSecondsToBaseTime

func AddSecondsToBaseTime(baseTimeInNanoSec int64, durationInSeconds int64) int64

AddSecondsToBaseTime - Gets the UnixNano with given duration and base time.

func AggregateYarpcOptions added in v0.3.5

func AggregateYarpcOptions(ctx context.Context, opts ...yarpc.CallOption) []yarpc.CallOption

AggregateYarpcOptions aggregate the header information from context to existing yarpc call options

func ArchivalStatusPtr added in v0.5.0

func ArchivalStatusPtr(t s.ArchivalStatus) *s.ArchivalStatus

ArchivalStatusPtr makes a copy and returns the pointer to an ArchivalStatus.

func AwaitWaitGroup

func AwaitWaitGroup(wg *sync.WaitGroup, timeout time.Duration) bool

AwaitWaitGroup calls Wait on the given wait Returns true if the Wait() call succeeded before the timeout Returns false if the Wait() did not return before the timeout

func BoolDefault added in v0.3.2

func BoolDefault(v *bool) bool

BoolDefault returns value if bool pointer is set otherwise default value of bool

func BoolPtr

func BoolPtr(v bool) *bool

BoolPtr makes a copy and returns the pointer to a bool.

func CancelExternalWorkflowExecutionFailedCausePtr added in v0.3.2

func CancelExternalWorkflowExecutionFailedCausePtr(t s.CancelExternalWorkflowExecutionFailedCause) *s.CancelExternalWorkflowExecutionFailedCause

CancelExternalWorkflowExecutionFailedCausePtr makes a copy and returns the pointer to a CancelExternalWorkflowExecutionFailedCause.

func CheckEventBlobSizeLimit added in v0.5.0

func CheckEventBlobSizeLimit(actualSize, warnLimit, errorLimit int, domainID, workflowID, runID string, scope metrics.Scope, logger log.Logger) error

CheckEventBlobSizeLimit checks if a blob data exceeds limits. It logs a warning if it exceeds warnLimit, and return ErrBlobSizeExceedsLimit if it exceeds errorLimit.

func ChildPolicyPtr added in v0.3.2

func ChildPolicyPtr(t s.ChildPolicy) *s.ChildPolicy

ChildPolicyPtr makes a copy and returns the pointer to a ChildPolicy.

func ChildWorkflowExecutionFailedCausePtr added in v0.3.2

func ChildWorkflowExecutionFailedCausePtr(t s.ChildWorkflowExecutionFailedCause) *s.ChildWorkflowExecutionFailedCause

ChildWorkflowExecutionFailedCausePtr makes a copy and returns the pointer to a ChildWorkflowExecutionFailedCause.

func ClientArchivalStatusPtr added in v0.5.7

func ClientArchivalStatusPtr(t shared.ArchivalStatus) *shared.ArchivalStatus

ClientArchivalStatusPtr makes a copy and returns the pointer to a client ArchivalStatus.

func ConvertIndexedValueTypeToThriftType added in v0.6.0

func ConvertIndexedValueTypeToThriftType(fieldType interface{}, logger log.Logger) workflow.IndexedValueType

ConvertIndexedValueTypeToThriftType takes fieldType as interface{} and convert to IndexedValueType. Because different implementation of dynamic config client may lead to different types

func CreateAdminServiceRetryPolicy added in v0.5.0

func CreateAdminServiceRetryPolicy() backoff.RetryPolicy

CreateAdminServiceRetryPolicy creates a retry policy for calls to matching service

func CreateFrontendServiceRetryPolicy added in v0.3.11

func CreateFrontendServiceRetryPolicy() backoff.RetryPolicy

CreateFrontendServiceRetryPolicy creates a retry policy for calls to frontend service

func CreateHistoryServiceRetryPolicy

func CreateHistoryServiceRetryPolicy() backoff.RetryPolicy

CreateHistoryServiceRetryPolicy creates a retry policy for calls to history service

func CreateHistoryStartWorkflowRequest added in v0.4.0

func CreateHistoryStartWorkflowRequest(
	domainID string,
	startRequest *workflow.StartWorkflowExecutionRequest,
) *h.StartWorkflowExecutionRequest

CreateHistoryStartWorkflowRequest create a start workflow request for history

func CreateKafkaOperationRetryPolicy added in v0.5.2

func CreateKafkaOperationRetryPolicy() backoff.RetryPolicy

CreateKafkaOperationRetryPolicy creates a retry policy for kafka operation

func CreateMatchingPollForDecisionTaskResponse added in v0.3.12

func CreateMatchingPollForDecisionTaskResponse(historyResponse *h.RecordDecisionTaskStartedResponse, workflowExecution *workflow.WorkflowExecution, token []byte) *m.PollForDecisionTaskResponse

CreateMatchingPollForDecisionTaskResponse create response for matching's PollForDecisionTask

func CreateMatchingServiceRetryPolicy added in v0.5.0

func CreateMatchingServiceRetryPolicy() backoff.RetryPolicy

CreateMatchingServiceRetryPolicy creates a retry policy for calls to matching service

func CreatePersistanceRetryPolicy

func CreatePersistanceRetryPolicy() backoff.RetryPolicy

CreatePersistanceRetryPolicy creates a retry policy for persistence layer operations

func DecisionTaskFailedCausePtr added in v0.3.2

func DecisionTaskFailedCausePtr(t s.DecisionTaskFailedCause) *s.DecisionTaskFailedCause

DecisionTaskFailedCausePtr makes a copy and returns the pointer to a DecisionTaskFailedCause.

func DecisionTypePtr

func DecisionTypePtr(t s.DecisionType) *s.DecisionType

DecisionTypePtr makes a copy and returns the pointer to a DecisionType.

func EventTypePtr

func EventTypePtr(t s.EventType) *s.EventType

EventTypePtr makes a copy and returns the pointer to a EventType.

func Float64Ptr

func Float64Ptr(v float64) *float64

Float64Ptr makes a copy and returns the pointer to an int64.

func GenerateRandomString added in v0.3.12

func GenerateRandomString(n int) string

GenerateRandomString is used for generate test string

func GetSizeOfMapStringToByteArray added in v0.5.7

func GetSizeOfMapStringToByteArray(input map[string][]byte) int

GetSizeOfMapStringToByteArray get size of map[string][]byte

func Int16Ptr added in v0.5.7

func Int16Ptr(v int16) *int16

Int16Ptr makes a copy and returns the pointer to an int16.

func Int32Default added in v0.3.2

func Int32Default(v *int32) int32

Int32Default returns value if int32 pointer is set otherwise default value of int32

func Int32Ptr

func Int32Ptr(v int32) *int32

Int32Ptr makes a copy and returns the pointer to an int32.

func Int64Default added in v0.3.2

func Int64Default(v *int64) int64

Int64Default returns value if int64 pointer is set otherwise default value of int64

func Int64Ptr

func Int64Ptr(v int64) *int64

Int64Ptr makes a copy and returns the pointer to an int64.

func IntPtr

func IntPtr(v int) *int

IntPtr makes a copy and returns the pointer to an int.

func IsJustOrderByClause added in v0.5.9

func IsJustOrderByClause(clause string) bool

IsJustOrderByClause return true is query start with order by

func IsKafkaTransientError added in v0.5.2

func IsKafkaTransientError(err error) bool

IsKafkaTransientError check if the error is a transient kafka error

func IsPersistenceTransientError

func IsPersistenceTransientError(err error) bool

IsPersistenceTransientError checks if the error is a transient persistence error

func IsServiceNonRetryableError

func IsServiceNonRetryableError(err error) bool

IsServiceNonRetryableError checks if the error is a non retryable error.

func IsServiceTransientError added in v0.3.11

func IsServiceTransientError(err error) bool

IsServiceTransientError checks if the error is a retryable error.

func IsValidContext

func IsValidContext(ctx context.Context) error

IsValidContext checks that the thrift context is not expired on cancelled. Returns nil if the context is still valid. Otherwise, returns the result of ctx.Err()

func IsWhitelistServiceTransientError added in v0.3.14

func IsWhitelistServiceTransientError(err error) bool

IsWhitelistServiceTransientError checks if the error is a transient error.

func MaxInt added in v0.7.0

func MaxInt(a, b int) int

MaxInt returns the greater one of two given integers

func MaxInt64 added in v0.6.0

func MaxInt64(a, b int64) int64

MaxInt64 returns the greater of two given int64

func MinInt added in v0.5.7

func MinInt(a, b int) int

MinInt returns the smaller of two given integers

func MinInt32 added in v0.3.14

func MinInt32(a, b int32) int32

MinInt32 return smaller one of two inputs int32

func MinInt64 added in v0.5.8

func MinInt64(a, b int64) int64

MinInt64 returns the smaller of two given int64

func PrettyPrintHistory

func PrettyPrintHistory(history *workflow.History, logger log.Logger)

PrettyPrintHistory prints history in human readable format

func SignalExternalWorkflowExecutionFailedCausePtr added in v0.3.6

func SignalExternalWorkflowExecutionFailedCausePtr(t s.SignalExternalWorkflowExecutionFailedCause) *s.SignalExternalWorkflowExecutionFailedCause

SignalExternalWorkflowExecutionFailedCausePtr makes a copy and returns the pointer to a SignalExternalWorkflowExecutionFailedCause.

func StringDefault added in v0.3.2

func StringDefault(v *string) string

StringDefault returns value if string pointer is set otherwise default value of string

func StringPtr

func StringPtr(v string) *string

StringPtr makes a copy and returns the pointer to a string.

func TDeserialize

func TDeserialize(msg thrift.TStruct, b []byte) (err error)

TDeserialize is used to deserialize []byte to thrift TStruct

func TDeserializeString

func TDeserializeString(msg thrift.TStruct, s string) (err error)

TDeserializeString is used to deserialize string to thrift TStruct

func TListDeserialize

func TListDeserialize(msgType reflect.Type, b []byte) (msgs []thrift.TStruct, err error)

TListDeserialize is used to deserialize []byte to list of thrift TStruct

func TListSerialize

func TListSerialize(msgs []thrift.TStruct) (b []byte, err error)

TListSerialize is used to serialize list of thrift TStruct to []byte

func TSerialize

func TSerialize(msg thrift.TStruct) (b []byte, err error)

TSerialize is used to serialize thrift TStruct to []byte

func TSerializeString

func TSerializeString(msg thrift.TStruct) (s string, err error)

TSerializeString is used to serialize thrift TStruct to string

func TaskListKindPtr added in v0.3.6

func TaskListKindPtr(t s.TaskListKind) *s.TaskListKind

TaskListKindPtr makes a copy and returns the pointer to a TaskListKind.

func TaskListPtr

func TaskListPtr(v s.TaskList) *s.TaskList

TaskListPtr makes a copy and returns the pointer to a TaskList.

func TaskListTypePtr added in v0.4.0

func TaskListTypePtr(t s.TaskListType) *s.TaskListType

TaskListTypePtr makes a copy and returns the pointer to a TaskListKind.

func TimeNowNanosPtr added in v0.5.7

func TimeNowNanosPtr() *int64

TimeNowNanosPtr returns an int64 ptr to current time in unix nanos

func TimeoutTypePtr added in v0.3.2

func TimeoutTypePtr(t s.TimeoutType) *s.TimeoutType

TimeoutTypePtr makes a copy and returns the pointer to a TimeoutType.

func Uint32Ptr

func Uint32Ptr(v uint32) *uint32

Uint32Ptr makes a copy and returns the pointer to a uint32.

func Uint64Ptr

func Uint64Ptr(v uint64) *uint64

Uint64Ptr makes a copy and returns the pointer to a uint64.

func ValidateLongPollContextTimeout added in v0.5.7

func ValidateLongPollContextTimeout(
	ctx context.Context,
	handlerName string,
	logger log.Logger,
) error

ValidateLongPollContextTimeout check if the context timeout for a long poll handler is too short or below a normal value. If the timeout is not set or too short, it logs an error, and return ErrContextTimeoutNotSet or ErrContextTimeoutTooShort accordingly. If the timeout is only below a normal value, it just logs an info and return nil.

func ValidateLongPollContextTimeoutIsSet added in v0.8.6

func ValidateLongPollContextTimeoutIsSet(
	ctx context.Context,
	handlerName string,
	logger log.Logger,
) (time.Time, error)

ValidateLongPollContextTimeoutIsSet checks if the context timeout is set for long poll requests.

func ValidateRetryPolicy added in v0.4.0

func ValidateRetryPolicy(policy *workflow.RetryPolicy) error

ValidateRetryPolicy validates a retry policy

func WorkflowIDToHistoryShard

func WorkflowIDToHistoryShard(workflowID string, numberOfShards int) int

WorkflowIDToHistoryShard is used to map workflowID to a shardID

func WorkflowTypePtr

func WorkflowTypePtr(t s.WorkflowType) *s.WorkflowType

WorkflowTypePtr makes a copy and returns the pointer to a WorkflowType.

Types

type ClientCache added in v0.5.0

type ClientCache interface {
	GetClientForKey(key string) (interface{}, error)
	GetClientForClientKey(clientKey string) (interface{}, error)
}

ClientCache store initialized clients

func NewClientCache added in v0.5.0

func NewClientCache(
	keyResolver keyResolver,
	clientProvider clientProvider,
) ClientCache

NewClientCache creates a new client cache based on membership

type Daemon

type Daemon interface {
	Start()
	Stop()
}

Daemon is the base interfaces implemented by background tasks within cherami

type EncodingType

type EncodingType string

EncodingType is an enum that represents various data encoding types

const (
	EncodingTypeJSON     EncodingType = "json"
	EncodingTypeThriftRW EncodingType = "thriftrw"
	EncodingTypeGob      EncodingType = "gob"
	EncodingTypeUnknown  EncodingType = "unknow"
	EncodingTypeEmpty    EncodingType = ""
)

Data encoding types

type PProfInitializer added in v0.3.5

type PProfInitializer interface {
	Start() error
}

PProfInitializer initialize the pprof based on config

type QueryTaskToken added in v0.3.2

type QueryTaskToken struct {
	DomainID string `json:"domainId"`
	TaskList string `json:"taskList"`
	TaskID   string `json:"taskId"`
}

QueryTaskToken identifies a query task

type RPCFactory added in v0.3.2

type RPCFactory interface {
	CreateDispatcher() *yarpc.Dispatcher
	CreateDispatcherForOutbound(callerName, serviceName, hostName string) *yarpc.Dispatcher
}

RPCFactory Creates a dispatcher that knows how to transport requests.

type TaskToken

type TaskToken struct {
	DomainID        string `json:"domainId"`
	WorkflowID      string `json:"workflowId"`
	RunID           string `json:"runId"`
	ScheduleID      int64  `json:"scheduleId"`
	ScheduleAttempt int64  `json:"scheduleAttempt"`
	ActivityID      string `json:"activityId"`
}

TaskToken identifies a task

type TaskTokenSerializer

type TaskTokenSerializer interface {
	Serialize(token *TaskToken) ([]byte, error)
	Deserialize(data []byte) (*TaskToken, error)
	SerializeQueryTaskToken(token *QueryTaskToken) ([]byte, error)
	DeserializeQueryTaskToken(data []byte) (*QueryTaskToken, error)
}

TaskTokenSerializer serializes task tokens

func NewJSONTaskTokenSerializer

func NewJSONTaskTokenSerializer() TaskTokenSerializer

NewJSONTaskTokenSerializer creates a new instance of TaskTokenSerializer

Directories

Path Synopsis
Package archiver is a generated GoMock package.
Package archiver is a generated GoMock package.
gob
mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
log
tag
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
sql

Jump to

Keyboard shortcuts

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