resilience

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Retry

func Retry(ctx context.Context, config RetryConfig, operation func() error) error

Retry executes an operation with exponential backoff

Types

type CircuitBreaker

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

CircuitBreaker prevents cascading failures by monitoring errors

func NewCircuitBreaker

func NewCircuitBreaker(name string, failureThreshold int, resetTimeout time.Duration) *CircuitBreaker

NewCircuitBreaker creates a new circuit breaker

func (*CircuitBreaker) AllowRequest

func (cb *CircuitBreaker) AllowRequest() bool

AllowRequest checks if a request is allowed through the circuit breaker

func (*CircuitBreaker) Execute

func (cb *CircuitBreaker) Execute(operation func() error) error

Execute runs an operation through the circuit breaker

func (*CircuitBreaker) GetFailureCount

func (cb *CircuitBreaker) GetFailureCount() int

GetFailureCount returns the current failure count

func (*CircuitBreaker) GetState

func (cb *CircuitBreaker) GetState() CircuitState

GetState returns the current state of the circuit breaker

func (*CircuitBreaker) RecordFailure

func (cb *CircuitBreaker) RecordFailure()

RecordFailure records a failed operation

func (*CircuitBreaker) RecordSuccess

func (cb *CircuitBreaker) RecordSuccess()

RecordSuccess records a successful operation

func (*CircuitBreaker) Reset

func (cb *CircuitBreaker) Reset()

Reset resets the circuit breaker to closed state

type CircuitState

type CircuitState int

CircuitState represents the state of the circuit breaker

const (
	// CircuitClosed allows requests through
	CircuitClosed CircuitState = iota
	// CircuitOpen blocks requests
	CircuitOpen
	// CircuitHalfOpen allows limited requests to test recovery
	CircuitHalfOpen
)

func (CircuitState) String

func (s CircuitState) String() string

String returns the string representation of the state

type RetryConfig

type RetryConfig struct {
	MaxAttempts   int
	InitialDelay  time.Duration
	MaxDelay      time.Duration
	BackoffFactor float64
	JitterFactor  float64
}

RetryConfig holds configuration for retry behavior

func DefaultRetryConfig

func DefaultRetryConfig() RetryConfig

DefaultRetryConfig returns sensible default retry configuration

type RetryableOperation

type RetryableOperation struct {
	Name      string
	Operation func() error
	Config    RetryConfig
	OnRetry   func(attempt int, err error)
}

RetryableOperation wraps an operation with retry logic

func (*RetryableOperation) Execute

func (r *RetryableOperation) Execute(ctx context.Context) error

Execute runs the operation with retries

Jump to

Keyboard shortcuts

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