Kinesis

Managed real-time streaming — the AWS Kafka alternative. Data Streams (ingest + fan-out) and Firehose (delivery) are the two that matter; Managed Apache Flink does stateful stream analytics on top.

flowchart LR
  P[Producers] --> DS[Data Streams]
  DS --> C[Consumers / KCL / Lambda]
  DS --> FH[Firehose]
  FH --> S3[(S3 / Redshift / OpenSearch / Splunk)]
  DS --> FL[Managed Apache Flink]

Data Streams

Ordered shards; ordering is per-shard by partition key. Records ≤ 1 MB, immutable once written, replayable. Retention 24 h default → 365 days. Many independent consumers per stream.

ProvisionedOn-Demand
CapacityYou pick shard countAuto (starts 4 MB/s, tracks 30-day peak, up to 200 MB/s)
Per shard1 MB/s or 1000 rec/s in; 2 MB/s out—
Over limitProvisionedThroughputException—
PayShard-hourStream-hour + data
UsePredictableSpiky / unknown

Consumers

  • Shared fan-out — 2 MB/s per shard shared by all consumers; 5 GetRecords/s per shard.
  • Enhanced fan-out — dedicated 2 MB/s per consumer per shard, push over HTTP/2.
  • KCL (consumer; checkpoints in DynamoDB), KPL (producer; batching/aggregation), or a Lambda event source mapping.

Firehose

Near-real-time delivery, zero code: S3, Redshift, OpenSearch, Splunk, HTTP endpoints, Datadog/New Relic. Buffers by size or time; optional Lambda transform, Parquet/ORC conversion, compression, failed-record backup to S3.

Formerly Kinesis Data Analytics (SQL apps deprecated). Windowing, joins, stateful processing over streams.

Choosing

NeedService
Custom processing, replay, many consumersData Streams
Zero-code load into S3/Redshift/OpenSearchFirehose
Stateful analytics / windowingManaged Apache Flink
Video ingest for MLKinesis Video Streams