Documentation
¶
Index ¶
- Constants
- Variables
- func Decode(data *commonpb.DataBlob, result proto.Message) error
- func EncodingTypeFromEnv() enumspb.EncodingType
- func NewDeserializationError(encodingType enumspb.EncodingType, deserializationErr error) error
- func NewSerializationError(encodingType enumspb.EncodingType, serializationErr error) error
- func NewUnknownEncodingTypeError(providedType string, expectedEncoding ...enumspb.EncodingType) error
- func ProtoEncode(m proto.Message) (*commonpb.DataBlob, error)
- func ReencodeEventBlobsAsProto3(serializer Serializer, blobs []*commonpb.DataBlob) ([]*commonpb.DataBlob, error)
- type Decoder
- type DeserializationError
- type Encoder
- type SerializationError
- type Serializer
- type UnknownEncodingTypeError
Constants ¶
const SerializerDataEncodingEnvVar = "TEMPORAL_TEST_DATA_ENCODING"
SerializerDataEncodingEnvVar controls which codec is used for encoding DataBlobs.
Currently supported values (case-insensitive):
- "json"
- "proto3"
Decoding always support all encodings regardless of this setting.
WARNING: This environment variable should only be used for testing; and never set it in production.
Variables ¶
var Module = fx.Options( fx.Provide(NewSerializer), )
Functions ¶
func EncodingTypeFromEnv ¶
func EncodingTypeFromEnv() enumspb.EncodingType
EncodingTypeFromEnv returns an EncodingType based on the environment variable `TEMPORAL_TEST_DATA_ENCODING`. It defaults to "ENCODING_TYPE_PROTO3" codec if the environment variable is not set.
func NewDeserializationError ¶
func NewDeserializationError( encodingType enumspb.EncodingType, deserializationErr error, ) error
NewDeserializationError returns a DeserializationError
func NewSerializationError ¶
func NewSerializationError( encodingType enumspb.EncodingType, serializationErr error, ) error
NewSerializationError returns a SerializationError
func NewUnknownEncodingTypeError ¶
func NewUnknownEncodingTypeError( providedType string, expectedEncoding ...enumspb.EncodingType, ) error
NewUnknownEncodingTypeError returns a new instance of encoding type error
func ProtoEncode ¶
ProtoEncode is kept for backward compatibility.
func ReencodeEventBlobsAsProto3 ¶
func ReencodeEventBlobsAsProto3(serializer Serializer, blobs []*commonpb.DataBlob) ([]*commonpb.DataBlob, error)
ReencodeEventBlobsAsProto3 re-encodes event blobs as proto3 if the serializer uses a different encoding. In production (proto3 encoding), this returns the input unchanged.
Types ¶
type Decoder ¶
type Decoder interface {
DeserializeEvents(data *commonpb.DataBlob) ([]*historypb.HistoryEvent, error)
DeserializeEvent(data *commonpb.DataBlob) (*historypb.HistoryEvent, error)
DeserializeStrippedEvents(data *commonpb.DataBlob) ([]*historyspb.StrippedHistoryEvent, error)
DeserializeClusterMetadata(data *commonpb.DataBlob) (*persistencespb.ClusterMetadata, error)
ShardInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.ShardInfo, error)
NamespaceDetailFromBlob(data *commonpb.DataBlob) (*persistencespb.NamespaceDetail, error)
HistoryTreeInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.HistoryTreeInfo, error)
HistoryBranchFromBlob(data []byte) (*persistencespb.HistoryBranch, error)
WorkflowExecutionInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.WorkflowExecutionInfo, error)
WorkflowExecutionStateFromBlob(data *commonpb.DataBlob) (*persistencespb.WorkflowExecutionState, error)
ActivityInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.ActivityInfo, error)
ChildExecutionInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.ChildExecutionInfo, error)
SignalInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.SignalInfo, error)
RequestCancelInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.RequestCancelInfo, error)
TimerInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.TimerInfo, error)
TaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.AllocatedTaskInfo, error)
TaskQueueInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.TaskQueueInfo, error)
TaskQueueUserDataFromBlob(data *commonpb.DataBlob) (*persistencespb.TaskQueueUserData, error)
ChecksumFromBlob(data *commonpb.DataBlob) (*persistencespb.Checksum, error)
QueueMetadataFromBlob(data *commonpb.DataBlob) (*persistencespb.QueueMetadata, error)
ReplicationTaskFromBlob(data *commonpb.DataBlob) (*replicationspb.ReplicationTask, error)
NexusEndpointFromBlob(data *commonpb.DataBlob) (*persistencespb.NexusEndpoint, error)
ChasmNodeFromBlob(blob *commonpb.DataBlob) (*persistencespb.ChasmNode, error)
ChasmNodeFromBlobs(metadata *commonpb.DataBlob, data *commonpb.DataBlob) (*persistencespb.ChasmNode, error)
TransferTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.TransferTaskInfo, error)
TimerTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.TimerTaskInfo, error)
ReplicationTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.ReplicationTaskInfo, error)
VisibilityTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.VisibilityTaskInfo, error)
ArchivalTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.ArchivalTaskInfo, error)
OutboundTaskInfoFromBlob(data *commonpb.DataBlob) (*persistencespb.OutboundTaskInfo, error)
QueueStateFromBlob(data *commonpb.DataBlob) (*persistencespb.QueueState, error)
DeserializeTask(category tasks.Category, blob *commonpb.DataBlob) (tasks.Task, error)
DeserializeReplicationTask(replicationTask *persistencespb.ReplicationTaskInfo) (tasks.Task, error)
}
Decoder is used to decode DataBlobs to objects.
var (
DefaultDecoder Decoder = defaultSerializer
)
type DeserializationError ¶
type DeserializationError struct {
// contains filtered or unexported fields
}
DeserializationError is an error type for deserialization
func (*DeserializationError) Error ¶
func (e *DeserializationError) Error() string
func (*DeserializationError) IsTerminalTaskError ¶
func (e *DeserializationError) IsTerminalTaskError() bool
IsTerminalTaskError informs our task processing subsystem that it is impossible to retry this error and that the task should be sent to a DLQ
func (*DeserializationError) Unwrap ¶
func (e *DeserializationError) Unwrap() error
type Encoder ¶
type Encoder interface {
EncodingType() enumspb.EncodingType
SerializeEvents(batch []*historypb.HistoryEvent) (*commonpb.DataBlob, error)
SerializeEvent(event *historypb.HistoryEvent) (*commonpb.DataBlob, error)
SerializeClusterMetadata(icm *persistencespb.ClusterMetadata) (*commonpb.DataBlob, error)
ShardInfoToBlob(info *persistencespb.ShardInfo) (*commonpb.DataBlob, error)
NamespaceDetailToBlob(info *persistencespb.NamespaceDetail) (*commonpb.DataBlob, error)
HistoryTreeInfoToBlob(info *persistencespb.HistoryTreeInfo) (*commonpb.DataBlob, error)
HistoryBranchToBlob(info *persistencespb.HistoryBranch) (*commonpb.DataBlob, error)
WorkflowExecutionInfoToBlob(info *persistencespb.WorkflowExecutionInfo) (*commonpb.DataBlob, error)
WorkflowExecutionStateToBlob(info *persistencespb.WorkflowExecutionState) (*commonpb.DataBlob, error)
ActivityInfoToBlob(info *persistencespb.ActivityInfo) (*commonpb.DataBlob, error)
ChildExecutionInfoToBlob(info *persistencespb.ChildExecutionInfo) (*commonpb.DataBlob, error)
SignalInfoToBlob(info *persistencespb.SignalInfo) (*commonpb.DataBlob, error)
RequestCancelInfoToBlob(info *persistencespb.RequestCancelInfo) (*commonpb.DataBlob, error)
TimerInfoToBlob(info *persistencespb.TimerInfo) (*commonpb.DataBlob, error)
TaskInfoToBlob(info *persistencespb.AllocatedTaskInfo) (*commonpb.DataBlob, error)
TaskQueueInfoToBlob(info *persistencespb.TaskQueueInfo) (*commonpb.DataBlob, error)
TaskQueueUserDataToBlob(info *persistencespb.TaskQueueUserData) (*commonpb.DataBlob, error)
ChecksumToBlob(checksum *persistencespb.Checksum) (*commonpb.DataBlob, error)
QueueMetadataToBlob(metadata *persistencespb.QueueMetadata) (*commonpb.DataBlob, error)
ReplicationTaskToBlob(replicationTask *replicationspb.ReplicationTask) (*commonpb.DataBlob, error)
NexusEndpointToBlob(endpoint *persistencespb.NexusEndpoint) (*commonpb.DataBlob, error)
// ChasmNodeToBlob returns a single encoded blob for the node.
ChasmNodeToBlob(node *persistencespb.ChasmNode) (*commonpb.DataBlob, error)
// ChasmNodeToBlobs returns the metadata blob first, followed by the data blob.
ChasmNodeToBlobs(node *persistencespb.ChasmNode) (*commonpb.DataBlob, *commonpb.DataBlob, error)
TransferTaskInfoToBlob(info *persistencespb.TransferTaskInfo) (*commonpb.DataBlob, error)
TimerTaskInfoToBlob(info *persistencespb.TimerTaskInfo) (*commonpb.DataBlob, error)
ReplicationTaskInfoToBlob(info *persistencespb.ReplicationTaskInfo) (*commonpb.DataBlob, error)
VisibilityTaskInfoToBlob(info *persistencespb.VisibilityTaskInfo) (*commonpb.DataBlob, error)
ArchivalTaskInfoToBlob(info *persistencespb.ArchivalTaskInfo) (*commonpb.DataBlob, error)
OutboundTaskInfoToBlob(info *persistencespb.OutboundTaskInfo) (*commonpb.DataBlob, error)
QueueStateToBlob(info *persistencespb.QueueState) (*commonpb.DataBlob, error)
SerializeTask(task tasks.Task) (*commonpb.DataBlob, error)
SerializeReplicationTask(task tasks.Task) (*persistencespb.ReplicationTaskInfo, error)
}
Encoder is used to encode objects to DataBlobs.
type SerializationError ¶
type SerializationError struct {
// contains filtered or unexported fields
}
SerializationError is an error type for serialization
func (*SerializationError) Error ¶
func (e *SerializationError) Error() string
func (*SerializationError) Unwrap ¶
func (e *SerializationError) Unwrap() error
type Serializer ¶
Serializer is used to serialize and deserialize DataBlobs.
func NewSerializer ¶
func NewSerializer() Serializer
type UnknownEncodingTypeError ¶
type UnknownEncodingTypeError struct {
// contains filtered or unexported fields
}
UnknownEncodingTypeError is an error type for unknown or unsupported encoding type
func (*UnknownEncodingTypeError) Error ¶
func (e *UnknownEncodingTypeError) Error() string
func (*UnknownEncodingTypeError) IsTerminalTaskError ¶
func (e *UnknownEncodingTypeError) IsTerminalTaskError() bool
IsTerminalTaskError informs our task processing subsystem that it is impossible to retry this error