Loader

Iterates over the data sources and passes inputs to the item builder. Loader can perform reading/addition in multiple threads using an executor. It may also break down large objects (e.g. PDF documents) into smaller objects - sections, paragraphs, sentences.