Documentation
¶
Overview ¶
Package memory implements deterministic, process-local idempotency storage. It is intended for tests and single-process tooling, not durable coordination.
Index ¶
- Constants
- type Clockdeprecated
- type Options
- type Store
- func (s *Store) Acquire(ctx context.Context, request idempotency.AcquireRequest) (idempotency.AcquireResult, 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 ( // DefaultMaxRecords is the process-local record capacity used when omitted. DefaultMaxRecords = 10_000 // MaxRecordCapacity bounds configured process-local record allocation. MaxRecordCapacity = 1_000_000 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct {
// Clock supplies time for every lease and transition decision.
Clock Clock
// OwnerTokens returns a unique token for each ownership attempt.
OwnerTokens func() (string, error)
// MaxRecords bounds retained records. Zero selects DefaultMaxRecords.
MaxRecords int
}
Options configures deterministic time and ownership-token generation.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store keeps idempotency records in process memory under one mutex.
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 the injected clock.
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 current owner's lease using the injected clock.
func (*Store) Inspect ¶
func (s *Store) Inspect(ctx context.Context, key idempotency.Key) (idempotency.Record, error)
Inspect returns a copy of the 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.