Skip to content

v1.0.0-alpha.3.0

Pre-release
Pre-release

Choose a tag to compare

@raghavgopal raghavgopal released this 12 Jul 11:59
· 7 commits to main since this release

Full Changelog: v1.0.0-alpha.2.1...v1.0.0-alpha-3.0

Thrilled to announce AvoOnce 1.0.0-alpha.3.0, a major feature release that brings true flexibility to distributed idempotency!

What's New

Client-Agnostic Redis Support

The idempotency-redis module has been completely refactored. We've removed the hard dependency on Jedis and introduced an Adapter Pattern via the new RedisOperations SPI.

  • Bring Your Own Client: You can now use AvoOnce with either Jedis or Lettuce.
  • Zero-Bloat Classpath: Both jedis and lettuce-core are now marked as optional dependencies. You only load the classes you actually use.
  • Intelligent Auto-Configuration: If you're using idempotency-spring-boot-starter, it will automatically scan your Spring context. If it finds a JedisPool or a RedisClient bean, it will auto-wire the correct idempotency repository seamlessly.

Stability & Bug Fixes

  • Auto-Configuration Hardening: Fixed a Spring reflection NoClassDefFoundError bug that could prevent application startup when optional storage dependencies (like Redis or Caffeine) were omitted from the user's classpath. All repository auto-configurations are now safely nested with @ConditionalOnClass.
  • Robust Acceptance Testing: Added comprehensive Testcontainers-backed integration tests for the Redis implementation, ensuring distributed locks and payload hashing work perfectly in multi-instance simulations.