mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 12:42:49 +00:00
0bf66d7c72
Every accepted agent report sends a state invalidation, and each state broadcast rebuilds and diffs the full frontend state, about 130 ms at 2,080 synthetic resources. The hub coalesced invalidations with a 100 ms debounce that restarted on every signal, so reports spaced more than 100 ms apart each produced a broadcast, while signals arriving closer than the window could postpone broadcasts until they stopped (#2199). With 200 agents reporting every 30 seconds, that was roughly 3.4 broadcasts a second, about half a core whenever a browser was open. Coalescing is now a throttle. The first invalidation after a quiet period still broadcasts after the 100 ms window. Later invalidations for the same audience (all clients, or one tenant) replace the pending request without rescheduling it, and broadcast no sooner than 2 seconds after that audience's previous broadcast. That caps broadcast work near 7% of a core at the same scale. Two seconds matches the report-driven store refresh interval, so faster broadcasts mostly re-sent the same resources. Refs #2199