Documentation ¶
Index ¶
- Constants
- Variables
- func CheckRequestOptions(options interface{}) error
- func DoBulkSetDelete[T stateRequestConstraint](ctx context.Context, req []T, method func(ctx context.Context, req *T) error, ...) error
- func Ping(ctx context.Context, store Store) error
- type BaseStore
- type BulkDeleteRowMismatchError
- type BulkGetOpts
- type BulkGetResponse
- type BulkStore
- type BulkStoreError
- type BulkStoreOpts
- type DefaultBulkStore
- func (b *DefaultBulkStore) BulkDelete(ctx context.Context, req []DeleteRequest, opts BulkStoreOpts) error
- func (b *DefaultBulkStore) BulkGet(ctx context.Context, req []GetRequest, opts BulkGetOpts) ([]BulkGetResponse, error)
- func (b *DefaultBulkStore) BulkSet(ctx context.Context, req []SetRequest, opts BulkStoreOpts) error
- type DeleteRequest
- type DeleteStateOption
- type DeleteWithPrefix
- type DeleteWithPrefixRequest
- type DeleteWithPrefixResponse
- type ETagError
- type ETagErrorKind
- type Feature
- type GetRequest
- type GetResponse
- type GetStateOption
- type Metadata
- type OperationType
- type Querier
- type QueryItem
- type QueryRequest
- type QueryResponse
- type SetRequest
- type SetStateOption
- type StateRequest
- type Store
- type TransactionalStateOperation
- type TransactionalStateRequest
- type TransactionalStore
- type TransactionalStoreMultiMaxSize
Constants ¶
const ( FirstWrite = "first-write" LastWrite = "last-write" Strong = "strong" Eventual = "eventual" )
const ( // GetRespMetaKeyTTLExpireTime is the key for the metadata value of the TTL // expire time. Value is a RFC3339 formatted string. GetRespMetaKeyTTLExpireTime string = "ttlExpireTime" )
Variables ¶
var ErrPingNotImplemented = errors.New("ping is not implemented by this state store")
ErrPingNotImplemented is returned by Ping if the state store does not implement the Pinger interface
Functions ¶
func CheckRequestOptions ¶ added in v0.3.0
func CheckRequestOptions(options interface{}) error
CheckRequestOptions checks if request options use supported keywords.
func DoBulkSetDelete ¶ added in v1.11.0
func DoBulkSetDelete[T stateRequestConstraint](ctx context.Context, req []T, method func(ctx context.Context, req *T) error, opts BulkStoreOpts) error
DoBulkSetDelete performs BulkSet and BulkDelete.
Types ¶
type BaseStore ¶ added in v1.11.0
type BaseStore interface { Init(ctx context.Context, metadata Metadata) error Features() []Feature Delete(ctx context.Context, req *DeleteRequest) error Get(ctx context.Context, req *GetRequest) (*GetResponse, error) Set(ctx context.Context, req *SetRequest) error }
BaseStore is an interface that contains the base methods for each state store.
type BulkDeleteRowMismatchError ¶ added in v1.7.0
type BulkDeleteRowMismatchError struct {
// contains filtered or unexported fields
}
BulkDeleteRowMismatchError represents mismatch in rowcount while deleting rows.
func NewBulkDeleteRowMismatchError ¶ added in v1.7.0
func NewBulkDeleteRowMismatchError(expected, affected uint64) *BulkDeleteRowMismatchError
BulkDeleteRowMismatchError returns a BulkDeleteRowMismatchError.
func (*BulkDeleteRowMismatchError) Error ¶ added in v1.7.0
func (e *BulkDeleteRowMismatchError) Error() string
type BulkGetOpts ¶ added in v1.11.0
type BulkGetOpts struct { // Number of requests made in parallel while retrieving values in bulk. // When set to <= 0 (the default value), will fetch all requested values in bulk without limit. // Note that if the component implements a native BulkGet method, this value may be ignored. Parallelism int }
BulkGetOpts contains options for the BulkGet method.
type BulkGetResponse ¶ added in v1.0.0
type BulkGetResponse struct { Key string `json:"key"` Data []byte `json:"data"` ETag *string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata"` Error string `json:"error,omitempty"` ContentType *string `json:"contentType,omitempty"` }
BulkGetResponse is the response object for bulk get response.
func DoBulkGet ¶ added in v1.11.0
func DoBulkGet(ctx context.Context, req []GetRequest, opts BulkGetOpts, getFn func(ctx context.Context, req *GetRequest) (*GetResponse, error)) ([]BulkGetResponse, error)
DoBulkGet performs BulkGet.
type BulkStore ¶ added in v1.0.0
type BulkStore interface { BulkGet(ctx context.Context, req []GetRequest, opts BulkGetOpts) ([]BulkGetResponse, error) BulkSet(ctx context.Context, req []SetRequest, opts BulkStoreOpts) error BulkDelete(ctx context.Context, req []DeleteRequest, opts BulkStoreOpts) error }
BulkStore is an interface to perform bulk operations on store.
func NewDefaultBulkStore ¶ added in v1.0.0
NewDefaultBulkStore build a default bulk store.
type BulkStoreError ¶ added in v1.11.0
type BulkStoreError struct {
// contains filtered or unexported fields
}
BulkStoreError is an error object that contains details on the operations that failed.
func NewBulkStoreError ¶ added in v1.11.0
func NewBulkStoreError(key string, err error) BulkStoreError
func (BulkStoreError) ETagError ¶ added in v1.11.0
func (e BulkStoreError) ETagError() *ETagError
ETagError returns an *ETagError if the wrapped error is of that kind; otherwise, returns nil
func (BulkStoreError) Error ¶ added in v1.11.0
func (e BulkStoreError) Error() string
Error returns the error message. It implements the error interface.
func (BulkStoreError) Key ¶ added in v1.11.0
func (e BulkStoreError) Key() string
Key returns the key of the operation that failed.
func (BulkStoreError) Unwrap ¶ added in v1.11.0
func (e BulkStoreError) Unwrap() error
Unwrap returns the wrapped error. It implements the error wrapping interface.
type BulkStoreOpts ¶ added in v1.11.0
type BulkStoreOpts struct { // Number of requests made in parallel while storing/deleting values in bulk. // When set to <= 0 (the default value), will perform all operations in parallel without limit. Parallelism int }
BulkStoreOpts contains options for the BulkSet and BulkDelete methods.
type DefaultBulkStore ¶ added in v1.0.0
type DefaultBulkStore struct {
// contains filtered or unexported fields
}
DefaultBulkStore is a default implementation of BulkStore.
func (*DefaultBulkStore) BulkDelete ¶ added in v1.0.0
func (b *DefaultBulkStore) BulkDelete(ctx context.Context, req []DeleteRequest, opts BulkStoreOpts) error
BulkDelete performs a bulk delete operation.
func (*DefaultBulkStore) BulkGet ¶ added in v1.0.0
func (b *DefaultBulkStore) BulkGet(ctx context.Context, req []GetRequest, opts BulkGetOpts) ([]BulkGetResponse, error)
BulkGet performs a Get operation in bulk.
func (*DefaultBulkStore) BulkSet ¶ added in v1.0.0
func (b *DefaultBulkStore) BulkSet(ctx context.Context, req []SetRequest, opts BulkStoreOpts) error
BulkSet performs a bulk save operation.
type DeleteRequest ¶
type DeleteRequest struct { Key string `json:"key"` ETag *string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata"` Options DeleteStateOption `json:"options,omitempty"` }
DeleteRequest is the object describing a delete state request.
func (DeleteRequest) GetKey ¶ added in v0.2.0
func (r DeleteRequest) GetKey() string
Key gets the Key on a DeleteRequest.
func (DeleteRequest) GetMetadata ¶ added in v0.2.0
func (r DeleteRequest) GetMetadata() map[string]string
Metadata gets the Metadata on a DeleteRequest.
func (DeleteRequest) HasETag ¶ added in v1.11.0
func (r DeleteRequest) HasETag() bool
HasETag returns true if the request has a non-empty ETag.
func (DeleteRequest) Operation ¶ added in v1.11.0
func (r DeleteRequest) Operation() OperationType
Operation returns the operation type for DeleteRequest, implementing TransactionalStateOperationRequest.
type DeleteStateOption ¶
type DeleteStateOption struct { Concurrency string `json:"concurrency,omitempty"` // "concurrency" Consistency string `json:"consistency"` // "eventual, strong" }
DeleteStateOption controls how a state store reacts to a delete request.
type DeleteWithPrefix ¶ added in v1.13.0
type DeleteWithPrefix interface {
DeleteWithPrefix(ctx context.Context, req DeleteWithPrefixRequest) (DeleteWithPrefixResponse, error)
}
DeleteWithPrefix is an optional interface to delete objects with a prefix.
type DeleteWithPrefixRequest ¶ added in v1.13.0
type DeleteWithPrefixRequest struct {
Prefix string `json:"prefix"`
}
DeleteWithPrefixRequest is the object describing a delete with prefix state request used for deleting actors.
func (*DeleteWithPrefixRequest) Validate ¶ added in v1.13.0
func (r *DeleteWithPrefixRequest) Validate() error
type DeleteWithPrefixResponse ¶ added in v1.13.0
type DeleteWithPrefixResponse struct {
Count int64 `json:"count"` // count of items removed
}
DeleteWithPrefixResponse is the object representing a delete with prefix state response containing the number of items removed.
type ETagError ¶ added in v1.0.0
type ETagError struct {
// contains filtered or unexported fields
}
ETagError is a custom error type for etag exceptions.
func NewETagError ¶ added in v1.0.0
func NewETagError(kind ETagErrorKind, err error) *ETagError
NewETagError returns an ETagError wrapping an existing context error.
func (*ETagError) Kind ¶ added in v1.0.0
func (e *ETagError) Kind() ETagErrorKind
type ETagErrorKind ¶ added in v1.0.0
type ETagErrorKind string
const ( ETagInvalid ETagErrorKind = "invalid" ETagMismatch ETagErrorKind = "mismatch" )
type Feature ¶ added in v1.1.1
Feature names a feature that can be implemented by state store components.
const ( // FeatureETag is the feature to etag metadata in state store. FeatureETag Feature = "ETAG" // FeatureTransactional is the feature that performs transactional operations. FeatureTransactional Feature = "TRANSACTIONAL" // FeatureQueryAPI is the feature that performs query operations. FeatureQueryAPI Feature = "QUERY_API" // FeatureTTL is the feature that supports TTLs. FeatureTTL Feature = "TTL" // FeatureDeleteWithPrefix is the feature that supports deleting with prefix. FeatureDeleteWithPrefix Feature = "DELETE_WITH_PREFIX" // FeaturePartitionKey is the feature that supports the partition FeaturePartitionKey Feature = "PARTITION_KEY" )
type GetRequest ¶
type GetRequest struct { Key string `json:"key"` Metadata map[string]string `json:"metadata"` Options GetStateOption `json:"options,omitempty"` }
GetRequest is the object describing a state "fetch" request.
func (GetRequest) GetKey ¶ added in v1.11.0
func (r GetRequest) GetKey() string
Key gets the Key on a GetRequest.
func (GetRequest) GetMetadata ¶ added in v1.11.0
func (r GetRequest) GetMetadata() map[string]string
Metadata gets the Metadata on a GetRequest.
type GetResponse ¶
type GetResponse struct { Data []byte `json:"data"` ETag *string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata"` ContentType *string `json:"contentType,omitempty"` }
GetResponse is the response object for getting state.
type GetStateOption ¶
type GetStateOption struct {
Consistency string `json:"consistency"` // "eventual, strong"
}
GetStateOption controls how a state store reacts to a get request.
type OperationType ¶
type OperationType string
OperationType describes a CRUD operation performed against a state store.
const ( // OperationUpsert is an update or create transactional operation. OperationUpsert OperationType = "upsert" // OperationDelete is a delete transactional operation. OperationDelete OperationType = "delete" )
type Querier ¶ added in v1.5.0
type Querier interface {
Query(ctx context.Context, req *QueryRequest) (*QueryResponse, error)
}
Querier is an interface to execute queries.
type QueryItem ¶ added in v1.5.0
type QueryItem struct { Key string `json:"key"` Data []byte `json:"data"` ETag *string `json:"etag,omitempty"` Error string `json:"error,omitempty"` ContentType *string `json:"contentType,omitempty"` }
QueryItem is an object representing a single entry in query results.
type QueryRequest ¶ added in v1.5.0
type QueryResponse ¶ added in v1.5.0
type QueryResponse struct { Results []QueryItem `json:"results"` Token string `json:"token,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` }
QueryResponse is the response object for querying state.
type SetRequest ¶
type SetRequest struct { Key string `json:"key"` Value any `json:"value"` ETag *string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` Options SetStateOption `json:"options,omitempty"` ContentType *string `json:"contentType,omitempty"` }
SetRequest is the object describing an upsert request.
func (SetRequest) GetKey ¶ added in v0.2.0
func (r SetRequest) GetKey() string
GetKey gets the Key on a SetRequest.
func (SetRequest) GetMetadata ¶ added in v0.2.0
func (r SetRequest) GetMetadata() map[string]string
GetMetadata gets the Key on a SetRequest.
func (SetRequest) HasETag ¶ added in v1.11.0
func (r SetRequest) HasETag() bool
HasETag returns true if the request has a non-empty ETag.
func (SetRequest) Operation ¶ added in v1.11.0
func (r SetRequest) Operation() OperationType
Operation returns the operation type for SetRequest, implementing TransactionalStateOperationRequest.
type SetStateOption ¶
type SetStateOption struct { Concurrency string // first-write, last-write Consistency string // "eventual, strong" }
SetStateOption controls how a state store reacts to a set request.
type StateRequest ¶ added in v1.11.0
StateRequest is an interface that allows gets of the Key and Metadata inside requests.
type Store ¶
type Store interface { metadata.ComponentWithMetadata BaseStore BulkStore }
Store is an interface to perform operations on store.
type TransactionalStateOperation ¶ added in v0.3.0
type TransactionalStateOperation interface { StateRequest Operation() OperationType }
TransactionalStateOperation is an interface for all requests that can be part of a transaction.
type TransactionalStateRequest ¶ added in v0.3.0
type TransactionalStateRequest struct { Operations []TransactionalStateOperation Metadata map[string]string }
TransactionalStateRequest describes a transactional operation against a state store that comprises multiple types of operations The Request field is either a DeleteRequest or SetRequest.
type TransactionalStore ¶
type TransactionalStore interface {
Multi(ctx context.Context, request *TransactionalStateRequest) error
}
TransactionalStore is an interface for initialization and support multiple transactional requests.
type TransactionalStoreMultiMaxSize ¶ added in v1.12.0
type TransactionalStoreMultiMaxSize interface {
MultiMaxSize() int
}
TransactionalStoreMultiMaxSize is an optional interface transactional state stores can implement to indicate the maximum size for a transaction.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
alicloud
|
|
aws
|
|
azure
|
|
cloudflare
|
|
gcp
|
|
hashicorp
|
|
Package mongodb is an implementation of StateStore interface to perform operations on store
|
Package mongodb is an implementation of StateStore interface to perform operations on store |
oci
|
|
postgresql
|
|
Package zookeeper is a generated GoMock package.
|
Package zookeeper is a generated GoMock package. |