Description
Spider crawler distribuito enterprise per indicizzazione massiva di siti web — orchestra una pipeline di N worker paralleli che processano una queue Redis condivisa di URL da visitare, con tutti i guardrail di crawling professionale: depth-limit configurable per evitare runaway su siti con loop circolari, dedup tramite bloom filter (memory-efficient probabilistic data structure che evita di rivisitare URL già processate senza dover keep in RAM un Set di milioni di URL), respect del robots.txt del sito target con parsing semantico Allow/Disallow/Crawl-delay/User-agent, sitemap-first seed strategy (parte dal sitemap.xml ufficiale invece di crawl dalla home + follow link — più efficiente e copre meglio i deep page), parallel workers configurable da 1 a 100 per scaling horizontale del throughput, checkpoint resume robusto per riprendere dopo crash o interruzione volontaria senza dover ricominciare daccapo. Architettura BYO (Bring Your Own — il servizio crawler gira separato dal runtime FlowForge per scaling indipendente): supporta come backend Heritrix (il crawler della Wayback Machine di archive.org), Scrapy-cluster (lo standard Python distributed scraping), oppure custom Rust crawler per use case performance-critical. Setup tipico: docker-compose con Redis Stack (per queue + bloom filter) + N crawler worker container + flowforge-bridge HTTP che espone API standard al runtime. Lifecycle 4-action: action=start (lancia un nuovo job di crawl con seed URL + config — ritorna jobId opaque univoco per tracking + handoff async), action=status (metrics live del job in corso: URL processed, queued, errored, current depth, ETA — utile per progress monitoring dashboard), action=stop (termina graceful il job preservando lo state checkpoint per future resume), action=results (paginated retrieval dei result batch con cursor — pattern naturale per workflow downstream che consumano i risultati a chunks). Pattern di callback webhook opzionale: invece di poll periodico con action=results, il caller può fornire un webhook URL e il crawler service pusha batch automatic quando hanno completed N pagine. Use case: indicizzazione completa di sito proprio per generation di interno search engine private + RAG retrieval index per knowledge base AI; competitor analysis (con respect del robots.txt — sempre, per evitare ToS issue legali); archivio storico di pagine prima di redesign per detection di changes future; monitoraggio modifiche periodiche di un sito (re-crawl settimanale + diff con previous run); link audit complessivo per individuazione 404 broken link + redirect chain inefficienti; data collection per training di LLM/NLP model su corpus dominio-specifico autorizzato.
