towerops/config
Graham McIntire 29593ac734
refactor: migrate from etcd to Oban for distributed job coordination
Replaces etcd-based distributed locking with Oban's PostgreSQL-backed job queue.
This simplifies the architecture by eliminating the need for a separate etcd cluster
while providing better reliability and observability.

Changes:
- Add Oban dependency and migration (oban_jobs table)
- Create DevicePollerCoordinator and DeviceMonitorCoordinator Oban workers
- Remove EtcdCoordinator and EtcdLock modules
- Update application supervisor to start Oban
- Configure Oban with pollers (50 workers) and monitors (50 workers) queues
- Remove etcd StatefulSet from Kubernetes manifests
- Update monitoring supervisor documentation

Benefits:
- Simpler architecture (no etcd cluster to manage)
- PostgreSQL-based (uses existing database)
- Built-in uniqueness prevents duplicate jobs cluster-wide
- Better observability with Oban Web UI
- Automatic job rescue on node crashes
- Easier local development (no etcd required)

What was removed:
- etcd StatefulSet (3 pods)
- EtcdCoordinator module (320 lines)
- EtcdLock module (158 lines)
- eetcd dependency

All 3,686 tests passing.
2026-01-24 16:12:27 -06:00
..
config.exs ignore startup errors 2026-01-23 10:06:25 -06:00
dev.exs Auto-expand MIB directories to include subdirectories 2026-01-19 14:06:51 -06:00
prod.exs Remove force_ssl config since Traefik handles SSL termination 2026-01-05 13:23:38 -06:00
runtime.exs refactor: migrate from etcd to Oban for distributed job coordination 2026-01-24 16:12:27 -06:00
test.exs refactor: migrate from etcd to Oban for distributed job coordination 2026-01-24 16:12:27 -06:00