From f639ecfac6687c9e8de4e3f305e168b2e4e1bb87 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 4 Dec 2025 17:58:31 +0000 Subject: 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 --- src/sync/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/sync/mod.rs') diff --git a/src/sync/mod.rs b/src/sync/mod.rs index 1155eaf..653aa27 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs @@ -9,12 +9,21 @@ //! - **Layer 1**: Announcement discovery (kinds 30617 + 30618) //! - **Layer 2**: Repository events (A/a tags for shared repos) //! - **Layer 3**: Related events (E/e tags for discussions, reviews) +//! +//! ## Resilience & Health Tracking (Phase 3) +//! +//! - **Health tracking**: Per-relay connection health states (Healthy, Degraded, Dead) +//! - **Exponential backoff**: Smart retry delays on failures (5s -> 1h max) +//! - **Dead relay handling**: Minimal retry for 24h+ failed relays +//! - **Startup jitter**: Prevent thundering herd on launch (0-10s random delay) mod connection; mod filter; +pub mod health; mod manager; pub use filter::FilterService; +pub use health::{HealthState, RelayHealth, RelayHealthTracker}; pub use manager::SyncManager; use std::net::SocketAddr; -- cgit v1.2.3