IDEMPIERE-6989: Distributed Cache: Add Redis as alternative backend to Hazelcast - #24
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThis PR adds a new documentation page explaining Redis as an optional distributed cache backend for iDempiere, integrated via Redisson. The documentation covers the pluggable architecture, container deployment advantages, setup instructions, and supported capabilities including caching, locking, messaging, and resilience patterns. ChangesRedis Distributed Cache Documentation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/new-features/in-development/redis-distributed-cache.md`:
- Around line 30-34: Clarify that swapping features with p2director
(uninstalling org.idempiere.hazelcast.service.feature.feature.group and
installing org.idempiere.redis.service.feature.feature.group) only changes
installed bundles but does not change the active backend at runtime; instruct
operators that to fully switch runtime backend they must set the JVM arg
-Didempiere.distributed.backend=redis (or environment
IDEMPIERE_DISTRIBUTED_BACKEND=redis) and restart iDempiere, and add a short note
that if both Hazelcast and Redis bundles remain installed the JVM/env setting
wins (Hazelcast stays active unless the backend is set to redis), plus remind
them to copy redis-template.yaml to $IDEMPIERE_HOME/redis.yaml and enable the
matching topology.
- Line 41: Update the Redisson RLock method name from the incorrect casing
"unLock" to the correct "unlock" everywhere in the doc line describing
distributed locks; specifically change the mention of tryLock / unLock to
tryLock / unlock to match the RLock API and java.util.concurrent.locks.Lock
naming convention.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 1a17c250-f08e-463c-9b1a-4093cf50f765
📒 Files selected for processing (1)
docs/new-features/in-development/redis-distributed-cache.md
…tivation and fix unlock casing Clarify that the JVM flag is required to activate the Redis bundle (installing alone is not enough), and explain the no-cache-provider risk when Hazelcast is uninstalled without setting the flag. Fix 'unLock' to 'unlock' to match the Redisson RLock / java.util.concurrent.locks.Lock API.
|
|
||
| **2. Swap the P2 feature.** Using p2director, uninstall `org.idempiere.hazelcast.service.feature.feature.group` and install `org.idempiere.redis.service.feature.feature.group`. | ||
|
|
||
| **3. Configure the connection.** Copy `redis-template.yaml` (bundled in `org.adempiere.server-feature`) to `$IDEMPIERE_HOME/redis.yaml` and uncomment the topology block that matches your setup. The template includes single-node, Sentinel, and Cluster examples with inline comments. |
There was a problem hiding this comment.
The step 1 and 2 above is wrong.
There was a problem hiding this comment.
fixed the wrong steps
…review Remove the p2director feature-swap step — org.idempiere.redis.service is already included in org.adempiere.server-feature and ships with a standard iDempiere installation. Both redis and hazelcast bundles coexist; selection is controlled solely by -Didempiere.distributed.backend=redis. Fix the redis-template.yaml path to $IDEMPIERE_HOME/redis-template.yaml (it is already placed there by the product build, not sourced from the feature bundle at runtime).
ticket: https://idempiere.atlassian.net/browse/IDEMPIERE-6989
Summary by CodeRabbit