
- Streaming backbones — transport continuous event data (examples: Kinesis Data Streams, Kafka).
- Processing engines — apply real-time logic, transformations, and feature engineering (examples: Flink, Lambda).
- Delivery & integrations — reliably deliver streams to storage or analytics targets (example: Kinesis Data Firehose).
- Analytics & consumers — dashboards, ML models, or downstream applications that consume processed streams.

- Kinesis Data Streams and Kinesis Video Streams — ingest real-time telemetry, events, and media.
- Kinesis Data Firehose — serverless delivery for loading streaming data into S3, Redshift, Amazon OpenSearch Service, and other sinks.
- Kinesis Data Analytics — SQL-based stream processing for simple analytics and the ability to run Apache Flink applications for complex processing.


- Real-time processing: ingest and analyze streaming data with minimal delay to enable timely detections and responses.
- Scalability: scale throughput by increasing the number of shards.
- Durability & availability: records are replicated across Availability Zones.
- AWS integration: native connectors to S3, Redshift, SageMaker, Lambda, and more for downstream ML and analytics.
- Custom applications: SDKs and client libraries enable bespoke consumer applications.

- Producers (mobile apps, IoT devices, application logs) publish events to Kinesis Data Streams.
- Consumers (AWS Lambda, Flink, or custom applications) process events in real time.
- Kinesis Data Firehose handles delivery to storage and analytics with managed batching and retries.
- Final sinks commonly include Amazon S3, Amazon Redshift, and Amazon OpenSearch Service.

- You want a fully managed, AWS-native streaming backbone with low operational overhead.
- Your workload requires low-latency, high-throughput streaming on AWS.
- Tight integration with AWS analytics and ML services (S3, Redshift, SageMaker, Lambda) is important.

A single Kinesis shard supports roughly 1 MB/second of data write throughput and about 2 MB/second of data read throughput, plus up to 1,000 PUT records/second. Use these figures to plan shard counts based on your ingest and consumer patterns.

- Stream-first architecture: all data is treated as streams, enabling continuous processing.
- Event-time processing: watermarks and event-time semantics handle out-of-order events.
- Stateful computations: support for large application state across event streams for complex joins and aggregations.
- Exactly-once consistency: strong guarantees when configured with state backends and checkpointing.
- Rich connectors: integrate with Kafka, Kinesis, HDFS, Cassandra, Elasticsearch/OpenSearch, JDBC, and cloud storage.
- Producers push events to Kafka topics (MSK).
- A stream processor (often Flink) consumes topics, applies business logic (filtering, aggregation, complex event patterns).
- Processed results are written to sinks such as Amazon S3, Redshift, or OpenSearch, or forwarded to downstream apps.
- You operate Kafka on-premises or across clouds and need compatibility.
- You require explicit replay semantics, fine-grained partition control, or advanced ordering guarantees.
- You want the flexibility of Kafka’s ecosystem but prefer delegating infrastructure management to AWS.
Purpose-focused comparison
Summary
This guide covered the roles and trade-offs for:
- Streaming backbones: Amazon Kinesis Data Streams and Apache Kafka (Amazon MSK).
- Processing engines: Apache Flink (Amazon Managed Service for Apache Flink) for advanced stateful processing.
- Delivery services: Amazon Kinesis Data Firehose for serverless, reliable delivery to data lakes and analytics.
- Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose
- Amazon Managed Service for Apache Flink
- Apache Kafka
- Amazon MSK (Managed Streaming for Apache Kafka)