-
Couldn't load subscription status.
- Fork 0
Add Redix and Poolboy dependencies, and implement RedixPool module #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
ttaylor92
wants to merge
9
commits into
metrics-and-distributed-tooling
Choose a base branch
from
destributed-tooling
base: metrics-and-distributed-tooling
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
Owner
ttaylor92
commented
Mar 15, 2025
- Added Redix and Poolboy as dependencies in mix.exs for Redis connection pooling
- Created RedixPool module to manage Redis connections with poolboy
- Implemented functions for storing and retrieving values in Redis with optional TTL
- Added Redix and Poolboy as dependencies in mix.exs for Redis connection pooling - Created RedixPool module to manage Redis connections with poolboy - Implemented functions for storing and retrieving values in Redis with optional TTL
- Replaced individual token pipeline components in Application with TokenPipelineSupervisor for better management. - Updated ResourceScheduler to correctly handle interval options. - Introduced TokenPipelineSupervisor to manage token producer, consumer, and consumer-producer relationships. - Modified TokenConsumer and TokenProducerConsumer to dynamically subscribe to the appropriate components based on options. - Adjusted user subscription tests to utilize the new TokenPipelineSupervisor for initialization.
- Added request_cache_plug dependency to mix.exs for caching GraphQL requests. - Configured request_cache_plug settings in config.exs, enabling caching for specified GraphQL paths. - Updated application supervision tree to include RedixPool for Redis connection management. - Created tests for RedixPool to validate put/get operations, TTL functionality, and concurrent access.
- Changed the order of parameters in the put function of RedixPool to have the value parameter last, improving clarity. - Updated documentation and examples to reflect the new parameter order. - Adjusted the corresponding test case to match the updated function signature. - Added RequestCache plug to the endpoint for caching GraphQL requests. - Integrated RequestCache middleware into the user response type for auth token resolution.
- Added libring as a dependency in mix.exs for consistent hashing functionality. - Configured libring settings in config.exs to define two rings with monitoring enabled. - Updated the application supervision tree to include HashRing.Managed for managing the hashring cache. - Created HashringCache module to handle key-value storage using ETS and consistent hashing for distributed nodes.
- Added .env file pattern to .gitignore to prevent environment files from being tracked. - Simplified libring configuration in config.exs by removing unnecessary node_type settings. - Changed the development server port from 5000 to 4000 in dev.exs - Updated application supervision tree to modify the get_port function for dynamic port retrieval based on environment variable.
- Introduced HashringCounter module for managing user action counts with ETS and consistent hashing. - Updated application supervision tree to replace ResolverBucket with HashringCounter for tracking action counts. - Refactored resolver implementations to utilize HashringCounter for incrementing and retrieving counts. - Removed ResolverBucket module and its associated tests, ensuring a cleaner codebase. - Added tests for HashringCounter to validate increment and retrieval functionality.
- Added a new docker-compose.yml file to define services for Prometheus, Grafana, and PostgreSQL with a monitoring network. - Updated prometheus configuration to change the target port from 4050 to 5000. - Enhanced application configuration to include debug logging and stacktrace options for better error visibility. - Modified test configuration to include additional logging and stacktrace settings. - Updated Grafana dashboard JSON files to reflect new data sources and plugin versions. - Introduced a new HashringCounter metrics module to track performance metrics for hashring operations. - Refactored TokenCache to provide a more informative response during token creation processing.
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.