Commit graph

10 commits

Author SHA1 Message Date
8c84706c6b
Fix live updates for /info/:call page by sending all packet fields
Update the PostgreSQL notify_packets_insert trigger to send all necessary
fields when broadcasting new packets. Previously only minimal fields were
sent (id, sender, lat, lon, inserted_at), which prevented the info page
from displaying complete packet information during live updates.

The trigger now includes:
- Position data (lat, lon, altitude, course, speed)
- Symbol data (symbol_table_id, symbol_code)
- Device data (device_identifier, path)
- Metadata (received_at, comment, raw_packet)
- PHG data (phg_power, phg_height, phg_gain, phg_directivity)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 17:57:16 -05:00
f6b0454d79
db indexes 2025-07-26 18:41:08 -05:00
91b0288202
Update improvement-todos.md with recent changes
Document all the improvements made today:
- Docker optimizations (removed Node.js, faster builds)
- Multiple bug fixes (PgBouncer, Redis, compilation warnings)
- CI/CD improvements (faster deployments, concurrency control)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 16:44:18 -05:00
eeeebef34e
Fix PgBouncer database connection and graceful shutdown
- Add SKIP_DB_CREATE env var to skip database creation when using PgBouncer
- Fix redis_children() to return proper child specs
- Implement zero-downtime graceful shutdown without user notifications
- Add health check plug for Kubernetes probes
- Remove user-facing shutdown notifications for seamless deployments

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:51:06 -05:00
e00d1bdf47
Update documentation with completed improvements
- Add reminder in CLAUDE.md to update improvement todos
- Document completed Redis PubSub integration
- Document completed PgBouncer deployment
- Document completed distributed caching implementation
- Document completed distributed rate limiting
- Add current architecture summary

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:32:19 -05:00
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
dadfef8a5b
cleanup 2025-07-18 10:41:26 -05:00
8eb1e90622
use postgis for testing 2025-07-09 16:48:55 -05:00
3903c1b26c
refactor 2025-06-19 15:20:18 -05:00
fe96abca59
symbols 2025-06-16 08:59:28 -05:00