Principle:Apache Druid Source Type Selection
| Knowledge Sources | |
|---|---|
| Domains | Data_Ingestion, UX_Design |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
A user-facing selection pattern that routes data ingestion workflows to the appropriate source connector based on input type.
Description
Source Type Selection is the entry point for all data ingestion workflows in Apache Druid. It presents users with a card-based interface showing available ingestion source types (S3, Azure, Google Cloud Storage, Delta Lake, HDFS, Druid reindexing, HTTP, local disk, inline data, and example datasets). The selection determines which input source configuration form is rendered and how the ingestion spec's ioConfig.inputSource is initialized.
This pattern implements a routing mechanism: the user's choice of source type maps to a specific IngestionComboType which controls the subsequent wizard steps, available configuration fields, and whether the workflow follows a batch or streaming path.
Usage
Use this pattern at the beginning of any batch or streaming data ingestion workflow. It serves as the decision point that determines the entire downstream configuration path. The selection is also influenced by the mode parameter which can restrict available types to batch-only or streaming-only sources.
Theoretical Basis
Source type selection follows a discriminated union routing pattern:
UserSelection(sourceType) → IngestionComboType
IngestionComboType → { inputSourceType, inputFormatType }
updateIngestionType(spec, comboType) → spec with initialized ioConfig
The routing ensures that:
- Each source type maps to exactly one input source configuration schema
- Format-specific fields are shown or hidden based on compatibility
- Streaming sources (Kafka, Kinesis) branch to supervisor creation instead of task submission