upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/purgatory/sync/mod.rs
blob: 1ac0cb125705e26ac8f6fbc487ec32b72d868d45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Purgatory sync module for background git data synchronization.
//!
//! This module implements identifier-based syncing with:
//! - Batched OID fetching across all purgatory events for an identifier
//! - Domain-based throttling (configurable requests/minute per domain)
//! - Exponential backoff per identifier (20s → 2m, then 2m intervals)
//! - Debouncing for burst event arrivals

mod context;
mod queue;
mod throttle;

pub use context::{ProcessResult, SyncContext};
pub use queue::SyncQueueEntry;
pub use throttle::{DomainThrottle, ThrottleManager};

#[cfg(test)]
pub use context::mock::MockSyncContext;