Architecture note3 lab guides3 lab guides
Kinesis · Data Streams
Shards, iterator age, and the consumer that never catches up.
Outcome
- Create a Kinesis stream in ON_DEMAND mode and explain the shard capacity model
- Put records with partition keys and explain what partition key controls
- Read records using the shard iterator model: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER
- Explain why
get-recordsdoes not remove records from the stream - Replay the full stream from a second independent consumer
- Handle
ExpiredIteratorExceptionand explain when it occurs
- Explain ordering guarantees within a shard vs across shards
- Choose a partition key for a given ordering requirement
- Extend and reduce stream retention and explain the data loss risk
- Split a shard using
update-shard-countand identify parent/child shard relationship - Explain what a hot shard is and how to detect and fix it
- Explain what Lambda ESM does: polling, checkpointing, retry behavior
- Configure
BisectBatchOnFunctionErrorand explain what it prevents - Set
MaximumRetryAttemptsand attach a DLQ on an ESM - Trace a poison pill from ingestion through bisect retries to DLQ
- Explain TRIM_HORIZON vs LATEST starting position and when to use each
- Explain the throughput difference between standard consumers and EFO
- Register an EFO consumer and use
subscribe-to-shard - Explain the 20-consumer limit and when EFO is worth the cost
- Compare polling latency (standard) vs push latency (EFO)
- Explain what KCL's DynamoDB lease table contains and why it prevents double-processing
- Write a processor with initialize, process_records, shard_ended, and lease_lost callbacks
- Checkpoint at the correct granularity and explain the checkpoint/at-least-once tradeoff
- Observe lease rebalancing when a second worker joins
- Trace crash recovery from checkpoint through DynamoDB to resumed processing
- Name the five key Kinesis CloudWatch metrics and what each indicates
- Explain why
IteratorAgeMillisecondsis more actionable than record count - Create iterator age, write throttle, and read throttle alarms with correct thresholds
- Use the consumer-stopped vs consumer-slow diagnostic table to identify the right fix
- Trigger the iterator age alarm by stopping the consumer and verify it clears on restart