diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 17:58:31 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 17:58:31 +0000 |
| commit | f639ecfac6687c9e8de4e3f305e168b2e4e1bb87 (patch) | |
| tree | cfcbf16a937a59048930ccaf8557f78ed5576bde /src/main.rs | |
| parent | bf558b0dc17e14f96eea624ea5591315a2909154 (diff) | |
feat(sync): Phase 3 - resilience and health tracking
- Add RelayHealthTracker with DashMap
- Implement exponential backoff (5s -> 1h max)
- Handle dead relays (24h failures -> daily retry)
- Add startup jitter to prevent thundering herd
- Add NGIT_SYNC_MAX_BACKOFF_SECS config
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 31e7cf6..9273afd 100644 --- a/src/main.rs +++ b/src/main.rs | |||
| @@ -51,13 +51,14 @@ async fn main() -> Result<()> { | |||
| 51 | config.domain | 51 | config.domain |
| 52 | ); | 52 | ); |
| 53 | 53 | ||
| 54 | // Start SyncManager for proactive sync (Phase 2: multi-relay support) | 54 | // Start SyncManager for proactive sync (Phase 2: multi-relay support, Phase 3: health tracking) |
| 55 | // Even without initial sync_relay_url, SyncManager can discover relays from stored announcements | 55 | // Even without initial sync_relay_url, SyncManager can discover relays from stored announcements |
| 56 | let sync_manager = SyncManager::new( | 56 | let sync_manager = SyncManager::new( |
| 57 | config.sync_relay_url.clone(), | 57 | config.sync_relay_url.clone(), |
| 58 | config.domain.clone(), | 58 | config.domain.clone(), |
| 59 | relay_with_db.database.clone(), | 59 | relay_with_db.database.clone(), |
| 60 | relay_with_db.write_policy.clone(), | 60 | relay_with_db.write_policy.clone(), |
| 61 | &config, | ||
| 61 | ); | 62 | ); |
| 62 | 63 | ||
| 63 | if config.sync_relay_url.is_some() { | 64 | if config.sync_relay_url.is_some() { |