upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-12-04 17:58:31 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2025-12-04 17:58:31 +0000
commitf639ecfac6687c9e8de4e3f305e168b2e4e1bb87 (patch)
treecfcbf16a937a59048930ccaf8557f78ed5576bde /src/main.rs
parentbf558b0dc17e14f96eea624ea5591315a2909154 (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.rs3
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() {