Collection
Source-specific collectors handle the messy reality of acquiring data. Each collector is responsible for one source — its authentication, rate limiting, parsing, pagination, and checkpointing.
Collectors return partial-success envelopes, not exceptions. A failed source does not bring down the workflow. The orchestration layer can replay, resume, or skip individual sources without affecting the rest of the system.