AWSDOP-C02
On this page
Beginner-friendly overview

Kinesis

Kinesis is AWS's platform for real-time data streaming. It ingests large volumes of continuously arriving data β€” application logs, clickstream events, IoT sensor readings, financial transactions, video feeds β€” and makes that data available for processing within milliseconds of arrival.

The Streaming Problem

Batch processing works well when you can wait. You collect data all day and process it at midnight. But many use cases can't wait: detecting fraud as a transaction happens, monitoring a server's health in real time, personalizing a web page based on what a user just clicked, or alerting on a sensor reading the moment it goes out of range. Kinesis is built for these cases.

The Main Services

Kinesis Data Streams is the core building block β€” a durable, ordered stream of records. Producers write records to the stream; consumers read them and process them. The stream retains data for 24 hours by default (up to 365 days), so consumers can re-read historical data or catch up after downtime. Multiple consumers can read the same stream independently.

Kinesis Data Firehose is the simplest way to load streaming data into a destination β€” S3, Redshift, OpenSearch, or a third-party service like Splunk. You point producers at Firehose, configure a destination, and data flows there automatically. Firehose can transform, compress, and encrypt data in transit. There's no consumer to write; Firehose handles delivery for you.

Kinesis Data Analytics lets you run SQL queries or Apache Flink applications directly on a stream in real time β€” computing running averages, detecting patterns, filtering events β€” without building and managing a separate processing cluster.

Shards and Throughput

A Kinesis Data Stream is divided into shards β€” each shard provides 1 MB/s of write capacity and 2 MB/s of read capacity. To handle more data, you add more shards. Records in a shard are ordered by arrival time, which is useful when the order of events from the same source matters.

The partition key you assign to each record determines which shard it lands on. Choose partition keys that distribute load evenly β€” if all records share the same key, they all go to one shard and you waste the rest of your capacity.