Index
All Classes and Interfaces|All Packages|Serialized Form
A
- accountId - Variable in class io.github.ravocode.avoonce.sample.PaymentController.PaymentRequest
-
The account identifier for the payment.
- accountId - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentRequest
-
The account identifier for the payment.
- acquireOrGet(String) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Delegates to
CaffeineIdempotencyRepository.acquireOrGet(String, String)with anullhash, keeping all locking logic in one place. - acquireOrGet(String) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Atomically attempts to save a new record with the state STARTED.
- acquireOrGet(String) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
-
Delegates to
JdbcIdempotencyRepository.acquireOrGet(String, String)with anullhash. - acquireOrGet(String) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Atomically attempts to save a new record with the state STARTED.
- acquireOrGet(String, String) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Atomically acquires a lock or returns an existing COMPLETED record.
- acquireOrGet(String, String) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Atomically attempts to save a new record with the state STARTED, verifying the request hash.
- acquireOrGet(String, String) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
-
Atomically acquires a distributed lock or returns an existing
COMPLETEDrecord. - acquireOrGet(String, String) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Atomically attempts to save a new record with the state STARTED, verifying the request hash.
- ambiguousStoreGuard() - Method in class io.github.ravocode.avoonce.spring.IdempotencyAutoConfiguration
-
Fail-fast bean that throws an
IllegalStateExceptionif multiple storage backends are on the classpath without an explicitavoonce.idempotency.storeproperty set. - amount - Variable in class io.github.ravocode.avoonce.sample.PaymentController.PaymentRequest
-
The payment amount to process.
- amount - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentRequest
-
The payment amount to process.
- aroundWriteTo(WriterInterceptorContext) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
- Atomicity - Section in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
C
- CachedBodyHttpServletRequest - Class in io.github.ravocode.avoonce.spring
-
An
HttpServletRequestWrapperthat caches the HTTP request body in memory, allowing it to be read multiple times (e.g. for SHA-256 hashing and downstream controller processing). - CachedBodyHttpServletRequest(HttpServletRequest) - Constructor for class io.github.ravocode.avoonce.spring.CachedBodyHttpServletRequest
-
Constructs a
CachedBodyHttpServletRequestby reading and caching the input stream of the given request. - caffeineAutoRepository(IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.CaffeineIdempotencyAutoConfiguration
-
Auto-wires the Caffeine in-memory repository when no other store is present and store property is auto.
- caffeineExplicitRepository(IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.CaffeineIdempotencyAutoConfiguration
-
Wires the Caffeine in-memory repository when
avoonce.idempotency.store=caffeineis explicitly set. - CaffeineIdempotencyAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Auto-configuration for Caffeine in-memory idempotency repositories.
- CaffeineIdempotencyAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.CaffeineIdempotencyAutoConfiguration
-
Creates a new auto-configuration instance.
- CaffeineIdempotencyRepository - Class in io.github.ravocode.avoonce.caffeine
-
In-memory
IdempotencyRepositorybacked by a Caffeine cache. - CaffeineIdempotencyRepository(IdempotencyConfig) - Constructor for class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Constructs a
CaffeineIdempotencyRepositorywith the given configuration. - COMPLETED - Enum constant in enum class io.github.ravocode.avoonce.core.domain.IdempotencyStatus
-
The request has been successfully processed, and a response is cached.
- count - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.CountResponse
-
The current process count.
- CountResponse() - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.CountResponse
-
Default constructor for serialization frameworks.
- CountResponse(int) - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.CountResponse
-
Creates a count response with the supplied value.
D
- delete(byte[]) - Method in class io.github.ravocode.avoonce.redis.JedisRedisOperations
-
Deletes the specified key.
- delete(byte[]) - Method in class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Deletes the specified key.
- delete(byte[]) - Method in interface io.github.ravocode.avoonce.redis.RedisOperations
-
Deletes the specified key.
- delete(String) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Removes the idempotency record for the given key from the in-memory cache.
- delete(String) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Removes the idempotency record associated with the given key.
- delete(String) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
- delete(String) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Removes the idempotency record associated with the given key.
- doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain) - Method in class io.github.ravocode.avoonce.spring.IdempotencyFilter
E
- evictExpired() - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
No-op for Caffeine: TTL-based expiry is handled automatically by the underlying cache.
- evictExpired() - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Evicts all expired records from the underlying storage.
- evictExpired() - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
- evictExpired() - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Evicts all expired records from the underlying storage.
- evictExpired() - Method in class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration.JdbcEvictionTask
-
Periodically runs the eviction task based on configured interval.
- EvictionProperties() - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyProperties.EvictionProperties
-
Creates a new eviction properties instance with default values.
- execute(String, byte[], Callable) - Method in class io.github.ravocode.avoonce.core.IdempotencyManager
-
Executes the given action idempotently, hashing the raw
requestBodyusing the configuredRequestHasherto detect key reuse with a different payload. - execute(String, String, Callable) - Method in class io.github.ravocode.avoonce.core.IdempotencyManager
-
Executes the given action idempotently using a caller-supplied pre-computed hash string.
- execute(String, Callable) - Method in class io.github.ravocode.avoonce.core.IdempotencyManager
-
Executes the given action idempotently based on the provided key alone.
F
- FAILED - Enum constant in enum class io.github.ravocode.avoonce.core.domain.IdempotencyStatus
-
The request encountered an error or failed to process.
- filter(ContainerRequestContext) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
- filter(ContainerRequestContext, ContainerResponseContext) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
G
- get(byte[]) - Method in class io.github.ravocode.avoonce.redis.JedisRedisOperations
-
Retrieves the value associated with a key.
- get(byte[]) - Method in class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Retrieves the value associated with a key.
- get(byte[]) - Method in interface io.github.ravocode.avoonce.redis.RedisOperations
-
Retrieves the value associated with a key.
- get(String) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Retrieves the current
IdempotencyRecordfor the given key without modifying it. - get(String) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Pure read-only check of the current record.
- get(String) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
- get(String) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Pure read-only check of the current record.
- getBody() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyResponse
-
Returns the raw serialized response body bytes.
- getCachedBody() - Method in class io.github.ravocode.avoonce.spring.CachedBodyHttpServletRequest
-
Returns the cached byte array of the request body.
- getEviction() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.JdbcProperties
-
Returns the eviction scheduling settings.
- getExpiresAt() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Returns the epoch-millisecond timestamp at which the STARTED lock expires.
- getHeaderName() - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Returns the configured request header name.
- getHeaderName() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the request header used to carry the idempotency key.
- getHeaders() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyResponse
-
Returns the captured HTTP response headers.
- getIdempotencyKey() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Returns the unique idempotency key.
- getInputStream() - Method in class io.github.ravocode.avoonce.spring.CachedBodyHttpServletRequest
-
Returns a servlet input stream backed by the cached request body.
- getIntervalMs() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.EvictionProperties
-
Returns the interval between eviction runs in milliseconds.
- getJdbc() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the JDBC-specific configuration properties.
- getLockTimeout() - Method in class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Returns the maximum lock-hold duration before a STARTED record is considered stale.
- getLockTimeout() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the maximum duration a lock may remain active before it is considered stale.
- getLockTimeoutUnit() - Method in class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Returns the time unit for the lock timeout value.
- getLockTimeoutUnit() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the time unit for the lock timeout.
- getProcessCount() - Method in class io.github.ravocode.avoonce.sample.PaymentController
-
Returns the number of processed payment requests seen by this sample controller.
- getProcessCount() - Method in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource
-
Returns the current number of processed payment requests.
- getReader() - Method in class io.github.ravocode.avoonce.spring.CachedBodyHttpServletRequest
-
Returns a buffered reader over the cached request body.
- getRequestHash() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Returns the SHA-256 hash of the original request body used for payload mismatch detection.
- getResponse() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Returns the cached HTTP response for replay, or
nullif the request has not completed successfully. - getStatus() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Returns the current lifecycle status of this record.
- getStatusCode() - Method in class io.github.ravocode.avoonce.core.domain.IdempotencyResponse
-
Returns the HTTP status code of the cached response.
- getStore() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the selected backing store name.
- getTtl() - Method in class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Returns the idempotency response cache TTL value.
- getTtl() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the configured cache TTL value.
- getTtlUnit() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns the time unit for the cache TTL.
- getUnit() - Method in class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Returns the time unit for the TTL value.
H
- hash(byte[]) - Method in interface io.github.ravocode.avoonce.core.hash.RequestHasher
-
Computes a hash of the given request body bytes.
- hash(byte[]) - Method in class io.github.ravocode.avoonce.core.hash.Sha256RequestHasher
-
Computes a SHA-256 hash of the supplied request body.
- Header serialisation - Section in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
I
- IdempotencyAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Spring Boot auto-configuration for the AvoOnce idempotency library.
- IdempotencyAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyAutoConfiguration
-
Creates a new auto-configuration instance.
- idempotencyConfig(IdempotencyProperties) - Method in class io.github.ravocode.avoonce.spring.IdempotencyAutoConfiguration
-
Configures the core
IdempotencyConfigbased on application properties. - IdempotencyConfig - Class in io.github.ravocode.avoonce.core.config
-
Immutable configuration for the AvoOnce idempotency layer.
- IdempotencyConfig() - Constructor for class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Default constructor with configurable environment variable overrides.
- IdempotencyConfig(long, TimeUnit) - Constructor for class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Constructs an
IdempotencyConfigwith the given TTL and default lock timeout (2 minutes). - IdempotencyConfig(long, TimeUnit, long, TimeUnit) - Constructor for class io.github.ravocode.avoonce.core.config.IdempotencyConfig
-
Constructs an
IdempotencyConfigwith explicit TTL and lock-timeout settings. - IdempotencyConflictException - Exception Class in io.github.ravocode.avoonce.core.exception
-
Exception thrown when a request is made with an idempotency key that is already in progress.
- IdempotencyConflictException(String) - Constructor for exception class io.github.ravocode.avoonce.core.exception.IdempotencyConflictException
-
Constructs an
IdempotencyConflictExceptionwith the given detail message. - IdempotencyContainerFilter - Class in io.github.ravocode.avoonce.jaxrs
-
JAX-RS
ContainerRequestFilter,ContainerResponseFilter, andWriterInterceptorthat provides zero-code idempotency protection for any JAX-RS resource. - IdempotencyContainerFilter() - Constructor for class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
-
Protected no-arg constructor for CDI proxying and frameworks.
- IdempotencyContainerFilter(IdempotencyRepository) - Constructor for class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
-
Creates a filter with default configuration.
- IdempotencyContainerFilter(IdempotencyRepository, IdempotencyJaxRsConfig) - Constructor for class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
-
Creates a filter with custom configuration.
- IdempotencyFilter - Class in io.github.ravocode.avoonce.spring
-
Spring Web Servlet Filter that provides selective idempotency protection for endpoints annotated with
Idempotent. - IdempotencyFilter(IdempotencyManager, IdempotencyProperties) - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyFilter
-
Constructs an
IdempotencyFilterwith the given manager and configuration properties. - IdempotencyFilter(IdempotencyManager, IdempotencyProperties, ObjectProvider) - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyFilter
-
Constructs an
IdempotencyFilterwith a handler mapping provider. - IdempotencyFilterProducer - Class in io.github.ravocode.avoonce.sample.quarkus
-
CDI producer that exposes the sample in-memory repository for Quarkus.
- IdempotencyFilterProducer() - Constructor for class io.github.ravocode.avoonce.sample.quarkus.IdempotencyFilterProducer
-
Creates a new producer instance.
- idempotencyFilterRegistration(IdempotencyManager, IdempotencyProperties, ObjectProvider) - Method in class io.github.ravocode.avoonce.spring.IdempotencyAutoConfiguration
-
Registers the
IdempotencyFilteras a Spring Boot servlet filter. - IdempotencyJaxRsConfig - Class in io.github.ravocode.avoonce.jaxrs
-
Framework-agnostic configuration for the JAX-RS idempotency filter.
- IdempotencyJaxRsConfig() - Constructor for class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Creates a new configuration instance with the default values.
- idempotencyManager(IdempotencyRepository) - Method in class io.github.ravocode.avoonce.spring.IdempotencyAutoConfiguration
-
Creates the primary
IdempotencyManagerbean backed by the resolvedIdempotencyRepository. - IdempotencyManager - Class in io.github.ravocode.avoonce.core
-
Core state machine that enforces exactly-once processing rules.
- IdempotencyManager(IdempotencyRepository) - Constructor for class io.github.ravocode.avoonce.core.IdempotencyManager
-
Constructs an
IdempotencyManagerusing the defaultSha256RequestHasher. - IdempotencyManager(IdempotencyRepository, RequestHasher) - Constructor for class io.github.ravocode.avoonce.core.IdempotencyManager
-
Constructs an
IdempotencyManagerwith a customRequestHasher. - IdempotencyMismatchException - Exception Class in io.github.ravocode.avoonce.core.exception
-
Thrown when an existing idempotency key is reused with a different request payload.
- IdempotencyMismatchException(String) - Constructor for exception class io.github.ravocode.avoonce.core.exception.IdempotencyMismatchException
-
Constructs an
IdempotencyMismatchExceptionwith the given detail message. - IdempotencyProperties - Class in io.github.ravocode.avoonce.spring
-
Configuration properties for the AvoOnce idempotency library.
- IdempotencyProperties() - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Creates a new properties instance with the default settings.
- IdempotencyProperties.EvictionProperties - Class in io.github.ravocode.avoonce.spring
-
Scheduled eviction configuration (
avoonce.idempotency.jdbc.eviction.*). - IdempotencyProperties.JdbcProperties - Class in io.github.ravocode.avoonce.spring
-
JDBC-specific configuration properties (
avoonce.idempotency.jdbc.*). - IdempotencyRecord - Class in io.github.ravocode.avoonce.core.domain
-
Immutable value object representing a single idempotency record stored in the repository.
- IdempotencyRecord(String, IdempotencyStatus, IdempotencyResponse, Long) - Constructor for class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Constructs an
IdempotencyRecordwithout a request hash (hash validation disabled). - IdempotencyRecord(String, IdempotencyStatus, IdempotencyResponse, Long, String) - Constructor for class io.github.ravocode.avoonce.core.domain.IdempotencyRecord
-
Constructs an
IdempotencyRecordwith full fields including a request hash. - idempotencyRepository() - Method in class io.github.ravocode.avoonce.sample.quarkus.IdempotencyFilterProducer
-
Produces the repository used by the Quarkus JAX-RS filter.
- IdempotencyRepository - Interface in io.github.ravocode.avoonce.core.spi
-
Service Provider Interface for pluggable infrastructure storage.
- IdempotencyResponse - Class in io.github.ravocode.avoonce.core.domain
-
Immutable value object encapsulating the cached HTTP response for a successfully processed idempotent request.
- IdempotencyResponse(int, Map, byte[]) - Constructor for class io.github.ravocode.avoonce.core.domain.IdempotencyResponse
-
Constructs an
IdempotencyResponsecapturing the full HTTP response. - IdempotencyStatus - Enum Class in io.github.ravocode.avoonce.core.domain
-
Represents the lifecycle state of an idempotency request.
- Idempotent - Annotation Interface in io.github.ravocode.avoonce.jaxrs
-
JAX-RS
NameBindingannotation for selective idempotency protection. - Idempotent - Annotation Interface in io.github.ravocode.avoonce.spring.annotation
-
Annotation for selective idempotency protection on Spring MVC controllers or handler methods.
- initialize(DataSource) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyTableInitializer
-
Creates the
idempotency_recordstable and its index if they do not already exist. - io.github.ravocode.avoonce.caffeine - package io.github.ravocode.avoonce.caffeine
- io.github.ravocode.avoonce.core - package io.github.ravocode.avoonce.core
- io.github.ravocode.avoonce.core.config - package io.github.ravocode.avoonce.core.config
- io.github.ravocode.avoonce.core.domain - package io.github.ravocode.avoonce.core.domain
- io.github.ravocode.avoonce.core.exception - package io.github.ravocode.avoonce.core.exception
- io.github.ravocode.avoonce.core.hash - package io.github.ravocode.avoonce.core.hash
- io.github.ravocode.avoonce.core.spi - package io.github.ravocode.avoonce.core.spi
- io.github.ravocode.avoonce.jaxrs - package io.github.ravocode.avoonce.jaxrs
- io.github.ravocode.avoonce.jdbc - package io.github.ravocode.avoonce.jdbc
- io.github.ravocode.avoonce.redis - package io.github.ravocode.avoonce.redis
- io.github.ravocode.avoonce.sample - package io.github.ravocode.avoonce.sample
- io.github.ravocode.avoonce.sample.quarkus - package io.github.ravocode.avoonce.sample.quarkus
- io.github.ravocode.avoonce.spring - package io.github.ravocode.avoonce.spring
- io.github.ravocode.avoonce.spring.annotation - package io.github.ravocode.avoonce.spring.annotation
- isAutoDdl() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.JdbcProperties
-
Returns whether the schema should be initialized automatically.
- isEnabled() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.EvictionProperties
-
Returns whether periodic eviction is enabled.
- isEnforce() - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Returns whether missing idempotency headers are rejected.
- isEnforce() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns whether requests missing the idempotency key are rejected.
- isHashBody() - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Returns whether request bodies are hashed for payload mismatch detection.
- isHashBody() - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Returns whether request bodies should be hashed for payload mismatch detection.
- isNameBinding() - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
-
Checks if this filter instance is configured for name-binding.
J
- jdbcAutoRepository(DataSource, IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration
-
Auto-wires the JDBC repository when DataSource is present, Caffeine is absent, and store property is auto.
- jdbcEvictionTask(JdbcIdempotencyRepository) - Method in class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration
-
Configures the scheduled background cleanup task for expired JDBC idempotency records.
- JdbcEvictionTask(IdempotencyRepository) - Constructor for class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration.JdbcEvictionTask
-
Constructs a
JdbcEvictionTaskwith the given repository. - jdbcExplicitRepository(DataSource, IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration
-
Wires the JDBC repository when
avoonce.idempotency.store=jdbcis explicitly set. - JdbcIdempotencyAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Auto-configuration for JDBC-backed idempotency repositories.
- JdbcIdempotencyAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration
-
Creates a new auto-configuration instance.
- JdbcIdempotencyAutoConfiguration.JdbcEvictionTask - Class in io.github.ravocode.avoonce.spring
-
Scheduled background task that triggers eviction of expired records from the JDBC store.
- JdbcIdempotencyRepository - Class in io.github.ravocode.avoonce.jdbc
-
A distributed
IdempotencyRepositorybacked by any JDBC-compatible database. - JdbcIdempotencyRepository(DataSource, IdempotencyConfig) - Constructor for class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
-
Constructs a JDBC-backed repository using the supplied data source and configuration.
- JdbcIdempotencyTableInitializer - Class in io.github.ravocode.avoonce.jdbc
-
Plain POJO that creates the
idempotency_recordstable if it does not already exist. - JdbcIdempotencyTableInitializer() - Constructor for class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyTableInitializer
- JdbcProperties() - Constructor for class io.github.ravocode.avoonce.spring.IdempotencyProperties.JdbcProperties
-
Creates a new JDBC properties instance with default values.
- jdbcTableInitializer(DataSource) - Method in class io.github.ravocode.avoonce.spring.JdbcIdempotencyAutoConfiguration
-
Automatically initializes the idempotency database table if auto-ddl is enabled.
- JedisAdapterAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Auto-configuration that adapts a Spring JedisPool bean into a Redis operations bridge.
- JedisAdapterAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.JedisAdapterAutoConfiguration
-
Creates a new auto-configuration instance.
- jedisRedisOperations(JedisPool) - Method in class io.github.ravocode.avoonce.spring.JedisAdapterAutoConfiguration
-
Creates a
JedisRedisOperationsbridge bean when a JedisPool bean is present. - JedisRedisOperations - Class in io.github.ravocode.avoonce.redis
-
A
RedisOperationsadapter for the Jedis client. - JedisRedisOperations(JedisPool) - Constructor for class io.github.ravocode.avoonce.redis.JedisRedisOperations
-
Constructs a
JedisRedisOperationsinstance using the givenJedisPool.
L
- LettuceAdapterAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Auto-configuration that adapts a Spring Lettuce RedisClient bean into a Redis operations bridge.
- LettuceAdapterAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.LettuceAdapterAutoConfiguration
-
Creates a new auto-configuration instance.
- lettuceRedisOperations(RedisClient) - Method in class io.github.ravocode.avoonce.spring.LettuceAdapterAutoConfiguration
-
Creates a
LettuceRedisOperationsbridge bean when a Lettuce RedisClient bean is present. - LettuceRedisOperations - Class in io.github.ravocode.avoonce.redis
-
A
RedisOperationsadapter for the Lettuce client. - LettuceRedisOperations(StatefulRedisConnection) - Constructor for class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Creates a new operations adapter using an existing connection.
- LettuceRedisOperations(RedisClient) - Constructor for class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Creates a new operations adapter using the provided Lettuce client.
M
- main(String[]) - Static method in class io.github.ravocode.avoonce.sample.SampleApplication
-
Starts the sample application.
P
- PaymentController - Class in io.github.ravocode.avoonce.sample
-
Sample REST controller demonstrating selective idempotency protection for payment endpoints.
- PaymentController() - Constructor for class io.github.ravocode.avoonce.sample.PaymentController
- PaymentController.PaymentRequest - Class in io.github.ravocode.avoonce.sample
-
Incoming payment request payload used by the controller.
- PaymentController.PaymentResponse - Class in io.github.ravocode.avoonce.sample
-
Response payload returned after processing a payment request.
- PaymentRequest() - Constructor for class io.github.ravocode.avoonce.sample.PaymentController.PaymentRequest
- PaymentRequest() - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentRequest
- PaymentResource - Class in io.github.ravocode.avoonce.sample.quarkus
-
Sample JAX-RS resource in Quarkus demonstrating selective idempotency protection using the
Idempotentname-binding annotation. - PaymentResource() - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource
- PaymentResource.CountResponse - Class in io.github.ravocode.avoonce.sample.quarkus
-
Response payload used for the process-count endpoint.
- PaymentResource.PaymentRequest - Class in io.github.ravocode.avoonce.sample.quarkus
-
Incoming payment request payload used by the Quarkus resource.
- PaymentResource.PaymentResponse - Class in io.github.ravocode.avoonce.sample.quarkus
-
Response payload returned after processing a payment request.
- PaymentResponse() - Constructor for class io.github.ravocode.avoonce.sample.PaymentController.PaymentResponse
-
Default constructor for serialization frameworks.
- PaymentResponse() - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentResponse
-
Default constructor for serialization frameworks.
- PaymentResponse(String, String, int) - Constructor for class io.github.ravocode.avoonce.sample.PaymentController.PaymentResponse
-
Creates a payment response with the supplied outcome details.
- PaymentResponse(String, String, int) - Constructor for class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentResponse
-
Creates a payment response with the supplied outcome details.
- processedAttempts - Variable in class io.github.ravocode.avoonce.sample.PaymentController.PaymentResponse
-
The number of processing attempts observed so far.
- processedAttempts - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentResponse
-
The number of processing attempts observed so far.
- processPayment(PaymentController.PaymentRequest) - Method in class io.github.ravocode.avoonce.sample.PaymentController
-
Protected endpoint: annotated with
Idempotent. - processPayment(PaymentResource.PaymentRequest) - Method in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource
-
Protected endpoint: annotated with
Idempotent. - processUnprotectedPayment(PaymentController.PaymentRequest) - Method in class io.github.ravocode.avoonce.sample.PaymentController
-
Unprotected endpoint: NOT annotated with
Idempotent. - processUnprotectedPayment(PaymentResource.PaymentRequest) - Method in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource
-
Unprotected endpoint: NOT annotated with
Idempotent.
R
- redisAutoRepository(RedisOperations, IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.RedisIdempotencyAutoConfiguration
-
Auto-wires the Redis repository when RedisOperations bean is present and store property is auto.
- redisExplicitRepository(RedisOperations, IdempotencyConfig) - Method in class io.github.ravocode.avoonce.spring.RedisIdempotencyAutoConfiguration
-
Wires the Redis repository when
avoonce.idempotency.store=redisis explicitly set. - RedisIdempotencyAutoConfiguration - Class in io.github.ravocode.avoonce.spring
-
Auto-configuration for Redis-backed idempotency repositories.
- RedisIdempotencyAutoConfiguration() - Constructor for class io.github.ravocode.avoonce.spring.RedisIdempotencyAutoConfiguration
-
Creates a new auto-configuration instance.
- RedisIdempotencyRepository - Class in io.github.ravocode.avoonce.redis
-
A distributed
IdempotencyRepositorybacked by Redis using Jedis. - RedisIdempotencyRepository(RedisOperations, IdempotencyConfig) - Constructor for class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Constructs a RedisIdempotencyRepository.
- RedisOperations - Interface in io.github.ravocode.avoonce.redis
-
Service Provider Interface for basic Redis operations.
- Registration (Jersey example) - Section in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
- Registration (Quarkus CDI example) - Section in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
- RequestHasher - Interface in io.github.ravocode.avoonce.core.hash
-
Strategy interface for computing a deterministic hash of an HTTP request body.
- resetCount() - Method in class io.github.ravocode.avoonce.sample.PaymentController
-
Resets the sample controller's processing counter.
- resetCount() - Method in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource
-
Resets the sample resource's processing counter.
S
- SampleApplication - Class in io.github.ravocode.avoonce.sample
-
Spring Boot entry point for the sample application.
- SampleApplication() - Constructor for class io.github.ravocode.avoonce.sample.SampleApplication
- saveFailure(String, String) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Transitions the record for the given key to
IdempotencyStatus.FAILED, allowing the client to safely retry the operation. - saveFailure(String, String) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Clears the active lock and updates the state to FAILED.
- saveFailure(String, String) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
- saveFailure(String, String) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Clears the active lock and updates the state to FAILED.
- saveSuccess(String, IdempotencyResponse) - Method in class io.github.ravocode.avoonce.caffeine.CaffeineIdempotencyRepository
-
Transitions the record for the given key to
IdempotencyStatus.COMPLETEDand stores the response. - saveSuccess(String, IdempotencyResponse) - Method in interface io.github.ravocode.avoonce.core.spi.IdempotencyRepository
-
Updates an existing record with a successful payload and sets the state to COMPLETED.
- saveSuccess(String, IdempotencyResponse) - Method in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
- saveSuccess(String, IdempotencyResponse) - Method in class io.github.ravocode.avoonce.redis.RedisIdempotencyRepository
-
Updates an existing record with a successful payload and sets the state to COMPLETED.
- set(byte[], byte[], long) - Method in class io.github.ravocode.avoonce.redis.JedisRedisOperations
-
Updates an existing key with a new value and extends its time-to-live.
- set(byte[], byte[], long) - Method in class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Updates an existing key with a new value and extends its time-to-live.
- set(byte[], byte[], long) - Method in interface io.github.ravocode.avoonce.redis.RedisOperations
-
Updates an existing key with a new value and extends its time-to-live.
- setAutoDdl(boolean) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.JdbcProperties
-
Sets whether the schema should be initialized automatically.
- setEnabled(boolean) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.EvictionProperties
-
Sets whether periodic eviction is enabled.
- setEnforce(boolean) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Enables or disables strict rejection of requests that omit the idempotency header.
- setEnforce(boolean) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets whether requests missing the idempotency key are rejected.
- setEviction(IdempotencyProperties.EvictionProperties) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.JdbcProperties
-
Sets the eviction scheduling settings.
- setHashBody(boolean) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Enables or disables hashing the request body for payload mismatch detection.
- setHashBody(boolean) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets whether request bodies should be hashed for payload mismatch detection.
- setHeaderName(String) - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyJaxRsConfig
-
Sets the HTTP header used to transport the idempotency key.
- setHeaderName(String) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the request header used to carry the idempotency key.
- setIfAbsent(byte[], byte[], long) - Method in class io.github.ravocode.avoonce.redis.JedisRedisOperations
-
Atomically sets a key to a value with a time-to-live only if the key does not already exist.
- setIfAbsent(byte[], byte[], long) - Method in class io.github.ravocode.avoonce.redis.LettuceRedisOperations
-
Atomically sets a key to a value with a time-to-live only if the key does not already exist.
- setIfAbsent(byte[], byte[], long) - Method in interface io.github.ravocode.avoonce.redis.RedisOperations
-
Atomically sets a key to a value with a time-to-live only if the key does not already exist.
- setIntervalMs(long) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties.EvictionProperties
-
Sets the interval between eviction runs in milliseconds.
- setJdbc(IdempotencyProperties.JdbcProperties) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the JDBC-specific configuration properties.
- setLockTimeout(long) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the maximum duration a lock may remain active before it is considered stale.
- setLockTimeoutUnit(TimeUnit) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the time unit for the lock timeout.
- setStore(String) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the selected backing store name.
- setTtl(long) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the configured cache TTL value.
- setTtlUnit(TimeUnit) - Method in class io.github.ravocode.avoonce.spring.IdempotencyProperties
-
Sets the time unit for the cache TTL.
- Sha256RequestHasher - Class in io.github.ravocode.avoonce.core.hash
-
Default
RequestHasherthat produces a lowercase hex-encoded SHA-256 digest. - Sha256RequestHasher() - Constructor for class io.github.ravocode.avoonce.core.hash.Sha256RequestHasher
- STARTED - Enum constant in enum class io.github.ravocode.avoonce.core.domain.IdempotencyStatus
-
The request is currently being processed by the system.
- status - Variable in class io.github.ravocode.avoonce.sample.PaymentController.PaymentResponse
-
The processing status for the payment.
- status - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentResponse
-
The processing status for the payment.
- Supported databases - Section in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
T
- transactionId - Variable in class io.github.ravocode.avoonce.sample.PaymentController.PaymentResponse
-
The generated transaction identifier.
- transactionId - Variable in class io.github.ravocode.avoonce.sample.quarkus.PaymentResource.PaymentResponse
-
The generated transaction identifier.
U
- Usage - Section in annotation interface io.github.ravocode.avoonce.jaxrs.Idempotent
- Usage (non-Spring) - Section in class io.github.ravocode.avoonce.jdbc.JdbcIdempotencyRepository
V
- valueOf(String) - Static method in enum class io.github.ravocode.avoonce.core.domain.IdempotencyStatus
-
Returns the enum constant of this class with the specified name.
- values() - Static method in enum class io.github.ravocode.avoonce.core.domain.IdempotencyStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
W
- withNameBinding() - Method in class io.github.ravocode.avoonce.jaxrs.IdempotencyContainerFilter
-
Marks this filter instance for name-binding via
Idempotent.
All Classes and Interfaces|All Packages|Serialized Form