Documentation ¶
Index ¶
- Constants
- func CheckDeleteRequestOptions(req *DeleteRequest) error
- func CheckSetRequestOptions(req *SetRequest) error
- func DeleteWithRetries(method func(req *DeleteRequest) error, req *DeleteRequest) error
- func SetWithRetries(method func(req *SetRequest) error, req *SetRequest) error
- type DeleteRequest
- type DeleteStateOption
- type GetRequest
- type GetResponse
- type GetStateOption
- type Metadata
- type OperationType
- type RetryPolicy
- type SetRequest
- type SetStateOption
- type StateStore
- type TransactionalRequest
- type TransactionalStateStore
Constants ¶
const ( FirstWrite = "first-write" LastWrite = "last-write" Strong = "strong" Eventual = "eventual" Exponential = "exponential" Linear = "linear" )
Variables ¶
This section is empty.
Functions ¶
func CheckDeleteRequestOptions ¶
func CheckDeleteRequestOptions(req *DeleteRequest) error
CheckDeleteRequestOptions checks if delete request options use supported keywords
func CheckSetRequestOptions ¶
func CheckSetRequestOptions(req *SetRequest) error
CheckSetRequestOptions checks if set request options use supported keywords
func DeleteWithRetries ¶
func DeleteWithRetries(method func(req *DeleteRequest) error, req *DeleteRequest) error
DeleteWithRetries handles SetRequest with retries
func SetWithRetries ¶
func SetWithRetries(method func(req *SetRequest) error, req *SetRequest) error
SetWithRetries handles SetRequest with retries
Types ¶
type DeleteRequest ¶
type DeleteRequest struct { Key string `json:"key"` ETag string `json:"etag,omitempty"` Options DeleteStateOption `json:"options,omitempty"` }
DeleteRequest is the object describing a delete state request
type DeleteStateOption ¶
type DeleteStateOption struct { Concurrency string `json:"concurrency,omitempty"` //"concurrency" Consistency string `json:"consistency"` //"eventual, strong" RetryPolicy RetryPolicy `json:"retryPolicy,omitempty"` }
DeleteStateOption controls how a state store reacts to a delete request
type GetRequest ¶
type GetRequest struct { Key string `json:"key"` Options GetStateOption `json:"options,omitempty"` }
GetRequest is the object describing a state fetch request
type GetResponse ¶
type GetResponse struct { Data []byte `json:"data"` ETag string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata"` }
GetResponse is the request 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 Delete OperationType = "delete"
Delete is a delete operation
const Upsert OperationType = "upsert"
Upsert is an update or create operation
type RetryPolicy ¶
type RetryPolicy struct { Interval time.Duration `json:"interval"` Threshold int `json:"threshold"` Pattern string `json:"pattern,omitempty"` //linear, exponential }
RetryPolicy describes how retries should be handled
type SetRequest ¶
type SetRequest struct { Key string `json:"key"` Value interface{} `json:"value"` ETag string `json:"etag,omitempty"` Metadata map[string]string `json:"metadata"` Options SetStateOption `json:"options,omitempty"` }
SetRequest is the object describing an upsert request
type SetStateOption ¶
type SetStateOption struct { Concurrency string `json:"concurrency,omitempty"` //first-write, last-write Consistency string `json:"consistency"` //"eventual, strong" RetryPolicy RetryPolicy `json:"retryPolicy,omitempty"` }
SetStateOption controls how a state store reacts to a set request
type StateStore ¶
type StateStore interface { Init(metadata Metadata) error Delete(req *DeleteRequest) error BulkDelete(req []DeleteRequest) error Get(req *GetRequest) (*GetResponse, error) Set(req *SetRequest) error BulkSet(req []SetRequest) error }
StateStore is an interface to perform operations on store nolint:golint
type TransactionalRequest ¶
type TransactionalRequest struct { Operation OperationType `json:"operation"` Request interface{} `json:"request"` }
TransactionalRequest describes a transactional operation against a state store that comprises multiple types of operations The Request field is either a DeleteRequest or SetRequest
type TransactionalStateStore ¶
type TransactionalStateStore interface { Init(metadata Metadata) error Multi(reqs []TransactionalRequest) error }
TransactionalStateStore is an interface for initialization and support multiple transactional requests