aprs.me/lib/aprsme_web
Graham McIntire 226a53bf61
Add Redis-based distributed caching and rate limiting
This commit introduces a dual-mode caching and rate limiting system that can use
either Redis (for distributed deployments) or ETS/Cachex (for single-node setups).

Key changes:
- Add Cache abstraction layer that automatically switches between Redis and Cachex
- Implement RedisCache module with full distributed cache functionality
- Implement RedisRateLimiter with sliding window algorithm for accurate rate limiting
- Add RateLimiterWrapper to provide unified API for both implementations
- Update application startup to conditionally use Redis when REDIS_URL is set
- Migrate all cache operations to use the new Cache abstraction
- Support graceful fallback to ETS-based solutions when Redis is unavailable

The system automatically detects Redis availability via REDIS_URL environment
variable and switches between implementations without code changes. This enables
proper distributed caching and rate limiting in Kubernetes deployments while
maintaining backward compatibility for development environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:29:38 -05:00
..
components Fix all failing tests 2025-07-25 14:14:04 -05:00
controllers Add cluster-aware APRS-IS status checking 2025-07-25 13:10:23 -05:00
live Move Redis PubSub config to runtime initialization 2025-07-26 10:10:55 -05:00
plugs Add Redis-based distributed caching and rate limiting 2025-07-26 15:29:38 -05:00
aprs_symbol.ex Add Redis-based distributed caching and rate limiting 2025-07-26 15:29:38 -05:00
endpoint.ex add sentry 2025-07-18 15:07:53 -05:00
gettext.ex more languages 2025-07-06 10:08:58 -05:00
router.ex back to raster 2025-07-24 12:02:28 -05:00
telemetry.ex clean up warnings 2025-07-16 08:55:46 -05:00
time_helpers.ex clean up warnings 2025-07-16 08:55:46 -05:00
time_utils.ex refactor and performance improvements 2025-07-10 10:53:34 -05:00
user_auth.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
weather_units.ex fix nil weather units 2025-07-08 12:45:50 -05:00