--- id: streaming title: "Streaming ingestion" --- Apache Druid can consume data streams from the following external streaming sources: * Apache Kafka through the bundled [Kafka indexing service](kafka-ingestion.md) extension. * Amazon Kinesis through the bundled [Kinesis indexing service](kinesis-ingestion.md) extension. Each indexing service provides real-time data ingestion with exactly-once stream processing guarantee. To use either of the streaming ingestion methods, you must first load the associated extension on both the Overlord and the MiddleManager. See [Loading extensions](../configuration/extensions.md#loading-extensions) for more information. Streaming ingestion is controlled by a continuously running [supervisor](supervisor.md). The supervisor oversees the state of indexing tasks to coordinate handoffs, manage failures, and ensure that scalability and replication requirements are maintained. You start a supervisor by submitting a JSON specification, often referred to as the supervisor spec, either though the Druid web console or using the [Supervisor API](../api-reference/supervisor-api.md).