Building a Distributed Data Ingestion Pipeline