ID: TRACK-007 Status: Completed Owner: Sangita Grantha Architect Created: 2026-01-22 Updated: 2026-01-22
While TRACK-006 mitigated the immediate database load issues via adaptive polling, the architecture remains “Pull-based” with multiple independent polling loops. This has limitations:
Transition to a “Push-based” architecture (Unified Polling) where a single Dispatcher queries the database and distributes tasks to worker pools via Channels.
Channel<ImportTaskRunDto> for Manifest, Scrape, and Resolution work streams.for (task in channel)).Before:
[Manifest Worker] -> Poll DB
[Scrape Worker 1] -> Poll DB
[Scrape Worker 2] -> Poll DB
[Resolution Worker] -> Poll DB
After:
[Dispatcher] -> Poll DB (Unified)
|
+-> [Manifest Channel] -> [Manifest Worker]
+-> [Scrape Channel] -> [Scrape Worker 1, 2]
+-> [Resolution Ch.] -> [Resolution Worker]