ddb

package
v0.3.16 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Checkpoint

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

Checkpoint stores and retrieves the last evaluated key from a DDB scan

func New

func New(appName, tableName string, opts ...Option) (*Checkpoint, error)

New returns a checkpoint that uses DynamoDB for underlying storage

func (*Checkpoint) GetCheckpoint

func (c *Checkpoint) GetCheckpoint(ctx context.Context, streamName, shardID string) (string, error)

GetCheckpoint determines if a checkpoint for a particular Shard exists. Typically used to determine whether we should start processing the shard with TRIM_HORIZON or AFTER_SEQUENCE_NUMBER (if checkpoint exists).

func (*Checkpoint) SetCheckpoint

func (c *Checkpoint) SetCheckpoint(_ context.Context, streamName, shardID, sequenceNumber string) error

SetCheckpoint stores a checkpoint for a shard (e.g. sequence number of last record processed by application). Upon fail over, record processing is resumed from this point.

func (*Checkpoint) Shutdown

func (c *Checkpoint) Shutdown(ctx context.Context) error

Shutdown the checkpoint. Save any in-flight data.

type DefaultRetryer

type DefaultRetryer struct {
	Retryer
}

DefaultRetryer .

func (*DefaultRetryer) ShouldRetry

func (r *DefaultRetryer) ShouldRetry(err error) bool

ShouldRetry when error occurred

type Option

type Option func(*Checkpoint)

Option is used to override defaults when creating a new Checkpoint

func WithDynamoClient

func WithDynamoClient(svc *dynamodb.Client) Option

WithDynamoClient sets the dynamoDb client

func WithMaxInterval

func WithMaxInterval(maxInterval time.Duration) Option

WithMaxInterval sets the flush interval

func WithRetryer

func WithRetryer(r Retryer) Option

WithRetryer sets the retryer

type Retryer

type Retryer interface {
	ShouldRetry(error) bool
}

Retryer interface contains one method that decides whether to retry based on error

Jump to

Keyboard shortcuts

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