Context
The project vision states the tool should have "rate limiting" by default and be "hard to misuse for DoS or abuse."
Currently, 8 feeder replicas can hammer a single domain with concurrent requests — there is no delay between requests and no per-domain concurrency limit.
Proposed Solution
- Add a configurable per-domain request rate (default: 1 request/second/domain)
- Track last request timestamp per domain (either in Neo4j or in-memory per feeder)
- Add per-domain concurrency limit (max N feeders crawling the same domain simultaneously)
- Make rate limit configurable via environment variable
Files to Modify
feeder/src/job.rs — add rate limiting check before fetching URLs
feeder/src/config.rs — add rate limit configuration
shared/src/neo4j_client.rs or new module — domain rate tracking if using Neo4j
Acceptance Criteria
Context
The project vision states the tool should have "rate limiting" by default and be "hard to misuse for DoS or abuse."
Currently, 8 feeder replicas can hammer a single domain with concurrent requests — there is no delay between requests and no per-domain concurrency limit.
Proposed Solution
Files to Modify
feeder/src/job.rs— add rate limiting check before fetching URLsfeeder/src/config.rs— add rate limit configurationshared/src/neo4j_client.rsor new module — domain rate tracking if using Neo4jAcceptance Criteria