Skip to the page
Tecyfy

AWS interview question · easy

Explain the difference between Kinesis Data Streams and Amazon Data Firehose (formerly Kinesis Data Firehose). When would you use each?

The short answerKinesis Data Streams is a durable, replayable stream that your own applications read; Amazon Data Firehose (formerly Kinesis Data Firehose) is a delivery service that buffers incoming data and writes it to a destination such as S3, with no consumer code.

The full answer

Kinesis Data Streams is a durable, replayable stream that your own applications read; Amazon Data Firehose (formerly Kinesis Data Firehose) is a delivery service that buffers incoming data and writes it to a destination such as S3, with no consumer code.

Kinesis Data StreamsAmazon Data Firehose
What it isA stream you produce to and consume fromA managed pipe to a destination
ConsumersYour code: Lambda, Flink, KCL apps, several at onceNone; Firehose delivers for you
LatencyUnder a secondBuffered: by size and time, from about zero seconds up to 15 minutes
Retention and replay24 hours by default, up to 365 days; consumers can re-readNo retention; data is delivered and gone
OrderingOrdered per shard (partition key)Not a concern; it batches
CapacityOn-demand mode scales automatically; provisioned mode by shardsFully automatic
TransformationWhatever your consumer doesOptional Lambda transform; JSON to Parquet or ORC conversion; dynamic partitioning; compression
DestinationsAnything your consumers write toS3, Redshift, OpenSearch, Apache Iceberg tables, Splunk, Snowflake, HTTP endpoints and partner tools

Use Kinesis Data Streams when

  • several applications must read the same events independently (fraud checks, a live dashboard and an archive);
  • you need sub-second processing or per-key ordering;
  • you need to replay past events after a bug fix or to start a new consumer.

Use Firehose when

  • the goal is simply to land data in S3, a warehouse or a search index;
  • you want files batched, compressed and converted to Parquet without writing code;
  • a delay of seconds to minutes is fine.

Using them together is common: producers write to Kinesis Data Streams, real-time consumers read it, and a Firehose stream with that data stream as its source archives everything to S3 as Parquet for analytics.

(Kinesis Data Streams can now also deliver directly to Iceberg tables in S3 Tables or to S3 without Firehose, which is worth mentioning if the interviewer asks what is new.)

Last updated 16 October 2026