[] Redis streams release - as a backup#445
Closed
Mat001 wants to merge 5 commits into
Closed
Conversation
This reverts commit fdbaa1d.
- Add RedisStreams implementation with retry logic and error handling - Support configurable batch processing and connection resilience - Add comprehensive unit tests for functionality and error scenarios - Update configuration to support both "redis" and "redis-streams" options - Maintain backwards compatibility with existing Redis pub/sub - Add configuration parameters for tuning Redis Streams behavior
This commit adds Redis Streams support for reliable notification delivery: Core Implementation: - Add Redis Streams pub/sub implementation with consumer groups - Implement batching and automatic message acknowledgment - Add retry logic with exponential backoff for transient failures - Include race condition fix for consumer group initialization - Fix resource leak in executeWithRetry with proper defer usage Configuration: - Add redis-streams as notification backend option - Support flexible Redis auth field names (auth_token, redis_secret, password) - Add Redis Streams specific config: batch_size, flush_interval, max_retries - Update config.yaml with Redis Streams examples Documentation: - Add comprehensive Redis Streams documentation (docs/redis-streams.md) - Document configuration options, testing, and migration guide Testing: - Add full test coverage for Redis Streams functionality - Add error handling tests with retry scenarios - Add coverage tests for all pubsub error paths - Tests for flexible password configuration in plugins Utilities: - Add redisauth utility for flexible password extraction - Update ODP cache and UPS services to use redisauth Dependencies: - Update go.mod with required go-redis dependency Note: This branch does NOT include CMAB. Based on redis-streams-notifications branch but with CMAB configuration removed from config.yaml.
When reverting CMAB, Git incorrectly changed some import paths: - Fix plugins/odpcache/registry.go: use pkg/cache instead of pkg/odp/cache - Fix pkg/optimizely/cache.go: use odpCachePkg from pkg/cache - Fix pkg/optimizely/client.go: use pkg/cache import - Add missing GetAttributeKeyByID method to TestProjectConfig These changes align with go-sdk PR #420 which reorganized cache packages.
Change from pkg/odp/cache to pkg/cache to match go-sdk cache reorganization.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
THIS PR IS A BACKUP. I'm releasing from master, which includes cmab. This branch is clean branch (pre-cmab) and includes redis sterams. This PR is here incase something goes wrong with redis-streams/cmab beta release form master.
Will remove it after a while.
Summary
Issues
FSSDK-11923