Documentation
¶
Index ¶
- Constants
- type Options
- type Store
- func (s *Store) Acquire(ctx context.Context, request idempotency.AcquireRequest) (idempotency.AcquireResult, error)
- func (s *Store) Check(ctx context.Context) error
- func (s *Store) Complete(ctx context.Context, request idempotency.CompleteRequest) (idempotency.Record, error)
- func (s *Store) Expire(ctx context.Context, key idempotency.Key) (idempotency.Record, error)
- func (s *Store) Fail(ctx context.Context, request idempotency.FailRequest) (idempotency.Record, error)
- func (s *Store) Heartbeat(ctx context.Context, request idempotency.HeartbeatRequest) (idempotency.Record, error)
- func (s *Store) Inspect(ctx context.Context, key idempotency.Key) (idempotency.Record, error)
- func (s *Store) Release(ctx context.Context, ownership idempotency.Ownership) (idempotency.Record, error)
Constants ¶
const ( // MaxPrefixBytes bounds the application prefix used in physical keys. MaxPrefixBytes = 64 // MaxRetention is the longest terminal record TTL accepted by the adapter. MaxRetention = 365 * 24 * time.Hour )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct {
// Prefix isolates physical keys and must not contain braces.
Prefix string
// Retention keeps terminal records available before TTL deletion.
Retention time.Duration
// OwnerTokens returns a unique token for each ownership attempt.
OwnerTokens func() (string, error)
}
Options configures physical key isolation, TTL, and token generation.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store persists records through atomic single-key Valkey scripts.
func New ¶
New constructs a store without checking server version or eviction policy. Production startup should normally use Open.
func (*Store) Acquire ¶
func (s *Store) Acquire(ctx context.Context, request idempotency.AcquireRequest) (idempotency.AcquireResult, error)
Acquire atomically elects an owner or returns the retained semantic outcome.
func (*Store) Complete ¶
func (s *Store) Complete(ctx context.Context, request idempotency.CompleteRequest) (idempotency.Record, error)
Complete records a bounded successful result for a live current owner.
func (*Store) Expire ¶
func (s *Store) Expire(ctx context.Context, key idempotency.Key) (idempotency.Record, error)
Expire records that an active lease elapsed according to Valkey server time.
func (*Store) Fail ¶
func (s *Store) Fail(ctx context.Context, request idempotency.FailRequest) (idempotency.Record, error)
Fail records a bounded terminal failure for a live current owner.
func (*Store) Heartbeat ¶
func (s *Store) Heartbeat(ctx context.Context, request idempotency.HeartbeatRequest) (idempotency.Record, error)
Heartbeat extends a live owner's lease using Valkey server time.
func (*Store) Inspect ¶
func (s *Store) Inspect(ctx context.Context, key idempotency.Key) (idempotency.Record, error)
Inspect returns the authoritative retained record for key.
func (*Store) Release ¶
func (s *Store) Release(ctx context.Context, ownership idempotency.Ownership) (idempotency.Record, error)
Release abandons a live current owner's attempt.