Skip to content

Conversation

@ttaylor92
Copy link
Owner

  • 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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant