DEV Community

Data Tech Bridge
Data Tech Bridge

Posted on

Top 200 Important Points About AWS Kinesis Service

Core Concepts and Components

1. AWS Kinesis Overview: A suite of services for real-time processing of streaming data at scale, including Kinesis Data Streams, Kinesis Data Firehose, Kinesis Data Analytics, and Kinesis Video Streams.

2. Kinesis Data Streams (KDS): Core service for collecting, processing, and analyzing real-time, streaming data. Data is organized in shards that can be scaled to handle varying throughput requirements.

3. Kinesis Data Firehose: Fully managed service for delivering real-time streaming data to destinations like S3, Redshift, Elasticsearch, and Splunk without writing applications or managing resources.

4. Kinesis Data Analytics: Allows processing of streaming data using SQL or Apache Flink to gain actionable insights in real-time.

5. Kinesis Video Streams: Securely streams video from connected devices to AWS for analytics, machine learning, and other processing.

6. Shards: Basic throughput unit of Kinesis Data Streams. Each shard provides 1MB/sec input and 2MB/sec output capacity.

7. Partition Key: Determines which shard a data record is assigned to. Good partition key design ensures even distribution across shards.

8. Sequence Number: Unique identifier for each record within a shard, assigned when a record is successfully added to a stream.

9. Data Record: The unit of data stored in a Kinesis data stream, with a maximum size of 1MB.

10. Retention Period: The time data records remain accessible in a stream, configurable from 24 hours (default) to 365 days.

Kinesis Data Streams (KDS) Limits and Performance

11. Shard Limits: Default limit of 500 shards per region, but can be increased via AWS support.

12. Throughput per Shard: 1MB/sec or 1,000 records/sec for writes; 2MB/sec for reads.

13. Maximum Record Size: 1MB per record.

14. API Rate Limits:
- PutRecord: 1,000 records/sec per shard
- PutRecords: 500 transactions/sec per account
- GetRecords: 5 transactions/sec per shard (returns up to 10,000 records or 10MB)

15. Resharding Operations: Limited to 5 transactions/sec per account and 2 simultaneous resharding operations per stream.

16. Enhanced Fan-Out: Provides dedicated throughput of 2MB/sec per consumer per shard, up to 20 consumers per stream.

17. Throughput Calculation Example:

```
Required Write Capacity = 5MB/sec
Shard Write Capacity = 1MB/sec
Required Shards = 5MB/sec ÷ 1MB/sec = 5 shards
```
Enter fullscreen mode Exit fullscreen mode

18. Read Throughput Calculation Example with Enhanced Fan-Out:

```
Required Read Capacity = 15MB/sec
Consumers = 3
Per Consumer Capacity with Enhanced Fan-Out = 2MB/sec per shard
Required Shards = 15MB/sec ÷ (3 consumers × 2MB/sec) = 2.5 → 3 shards
```
Enter fullscreen mode Exit fullscreen mode

19. Shard Splitting: Increases stream capacity by dividing one shard into two, preserving the parent shard's data during the process.

20. Shard Merging: Combines two shards with adjacent hash key ranges to decrease stream capacity.

Kinesis Data Firehose Limits and Performance

21. Buffer Size: Configurable from 1MB to 128MB.

22. Buffer Interval: Configurable from 60 seconds to 900 seconds.

23. Throughput Limit: 5,000 records/sec or 5MB/sec per delivery stream.

24. Record Size: Maximum of 1,000KB per record.

25. Delivery Stream Limit: Default of 50 delivery streams per region, can be increased.

26. Data Transformation: Supports Lambda for record transformation with a timeout of 5 minutes.

27. Destination Support: S3, Redshift, Elasticsearch/OpenSearch, Splunk, HTTP endpoints, and 3rd-party providers.

28. Batching Calculation Example:

```
Incoming Data Rate = 2MB/sec
Buffer Size = 64MB
Buffer Interval = 120 seconds
Actual Delivery Time = Min(Buffer Size ÷ Data Rate, Buffer Interval)
Actual Delivery Time = Min(64MB ÷ 2MB/sec, 120 seconds) = Min(32 seconds, 120 seconds) = 32 seconds
```
Enter fullscreen mode Exit fullscreen mode

Kinesis Data Analytics Limits and Performance

29. Processing Capacity: Measured in Kinesis Processing Units (KPUs), each providing 1 vCPU and 4GB memory.

30. Scaling: Automatically scales from 1 to 64 KPUs based on application requirements.

31. Input Streams: Up to 64 input streams per application.

32. Output Streams: Up to 64 output destinations per application.

33. SQL Query Limits: Maximum of 100 SQL queries per application.

34. Checkpointing Interval: Minimum of 1 minute for application state persistence.

35. Parallelism: Configurable parallelism per Flink application, affecting throughput and cost.

36. Throughput Calculation Example:

```
Input Records = 10,000 records/sec
Record Size = 5KB
Input Throughput = 10,000 × 5KB = 50MB/sec
Estimated KPUs = 50MB/sec ÷ 10MB/sec per KPU = 5 KPUs
```
Enter fullscreen mode Exit fullscreen mode

Kinesis Video Streams Limits and Performance

37. Maximum Fragment Size: 50MB.

38. Fragment Duration: Typically 2-10 seconds, configurable based on use case.

39. Retention Period: 1 hour to 10 years.

40. Streams per Account: Default limit of 100 streams per account.

41. Producers per Stream: No hard limit, but practical limit based on bandwidth.

42. Consumers per Stream: Up to 20 consumers per stream.

43. Bandwidth: Up to 12.5MB/sec (100Mbps) per stream for ingestion.

44. Latency: Typically 3-5 seconds end-to-end for live streaming.

Producer and Consumer Applications

45. Kinesis Producer Library (KPL): High-level library that simplifies producer application development with built-in retry logic and batching.

46. Kinesis Client Library (KCL): Helps build consumer applications that can process data from Kinesis streams with automatic load balancing and failure handling.

47. KCL Checkpointing: Tracks the progress of record processing to ensure exactly-once processing semantics.

48. KCL Leases: Distributes shards among consumer instances for balanced processing.

49. AWS SDK Integration: Direct API access through AWS SDKs for all programming languages.

50. Kinesis Agent: Standalone application that collects and sends data to Kinesis from log files.

51. Producer Batching: Improves throughput by combining multiple records into a single API call using PutRecords.

52. Consumer Batching: GetRecords can retrieve up to 10MB or 10,000 records in a single call.

53. Kinesis Connector Library: Integrates Kinesis with other AWS services like DynamoDB, Redshift, and S3.

54. AWS Lambda Integration: Serverless processing of Kinesis stream data with automatic scaling.

Implementing Throttling and Overcoming Rate Limits

55. Exponential Backoff: Implement retry logic with exponential backoff for throttled requests.

56. Adaptive Batching: Dynamically adjust batch sizes based on observed throughput and throttling.

57. Predictive Scaling: Monitor usage patterns and scale shards proactively before hitting limits.

58. Request Distribution: Ensure even distribution of requests across all shards using well-designed partition keys.

59. Caching Writes: Buffer writes locally during throttling events and retry when capacity is available.

60. Rate Limiting: Implement client-side rate limiting to stay within service quotas.

61. Provisioned Throughput: Request throughput increases for predictable high-volume workloads.

62. Shard Splitting Strategy: Split busy shards before they reach capacity limits.

63. Hot Shard Detection: Monitor per-shard metrics to identify and address hot shards.

64. Error Handling Code Example:

```java
int retries = 0;
boolean success = false;
while (!success && retries < MAX_RETRIES) {
    try {
        PutRecordsResult result = kinesisClient.putRecords(putRecordsRequest);
        if (result.getFailedRecordCount() > 0) {
            // Handle partial failures
            retryFailedRecords(result);
        } else {
            success = true;
        }
    } catch (ProvisionedThroughputExceededException e) {
        long backoffTime = Math.min(MAX_BACKOFF, BASE_BACKOFF * (1 << retries));
        Thread.sleep(backoffTime);
        retries++;
    }
}
```
Enter fullscreen mode Exit fullscreen mode

Throughput and Latency Characteristics

65. End-to-End Latency: Typically sub-second from producer to consumer for Kinesis Data Streams.

66. Firehose Delivery Latency: Minimum of 60 seconds due to buffering, but typically 1-5 minutes depending on configuration.

67. Enhanced Fan-Out Latency: Average of 70ms compared to 200ms+ for standard consumers.

68. Propagation Delay: Time for data to be available to all consumers after being written, typically <1 second.

69. Processing Latency: Varies based on consumer implementation, from milliseconds (Lambda) to seconds (KCL applications).

70. Cross-Region Replication Latency: Typically 1-5 seconds plus network transit time.

71. Kinesis Analytics Processing Latency: Generally 1-5 seconds for SQL-based applications.

72. Flink Application Latency: Can achieve sub-second processing with proper configuration.

73. Latency vs. Throughput Tradeoff: Batching improves throughput but increases latency.

74. Latency Calculation Example:

```
Producer Write Time = 50ms
Propagation Delay = 200ms
Consumer Processing Time = 150ms
Total Latency = 50ms + 200ms + 150ms = 400ms
```
Enter fullscreen mode Exit fullscreen mode

Replayability of Data Ingestion Pipelines

75. Data Retention: Configure longer retention periods (up to 365 days) to enable replay capabilities.

76. Sequence Number Tracking: Store sequence numbers to resume processing from specific points.

77. Checkpoint Management: Implement robust checkpoint storage for consumer applications.

78. Multiple Consumer Groups: Use separate application names in KCL to maintain independent processing positions.

79. At-Least-Once Processing: KCL guarantees at-least-once processing semantics with proper checkpointing.

80. Replay Strategies: Implement time-based, sequence-based, or checkpoint-based replay mechanisms.

81. Idempotent Processing: Design downstream systems to handle duplicate records during replays.

82. Archiving to S3: Use Firehose to archive all data to S3 for long-term replayability beyond retention periods.

83. Replay Coordination: Implement coordination mechanisms for multi-consumer replay scenarios.

84. Replay Code Example:

```java
// Start processing from a specific timestamp
Map<String, ShardIteratorType> iteratorMap = new HashMap<>();
iteratorMap.put("shardId-000000000000", ShardIteratorType.AT_TIMESTAMP);

Instant replayTimestamp = Instant.parse("2023-01-15T10:00:00Z");
StartingPosition position = StartingPosition.builder()
    .type(ShardIteratorType.AT_TIMESTAMP)
    .timestamp(replayTimestamp)
    .build();

// Configure KCL consumer with this starting position
```
Enter fullscreen mode Exit fullscreen mode

Security and Compliance

85. Encryption at Rest: Server-side encryption using AWS KMS.

86. Encryption in Transit: All API calls use HTTPS endpoints.

87. IAM Integration: Fine-grained access control for streams and operations.

88. VPC Endpoints: Support for private connectivity through VPC endpoints.

89. Compliance Certifications: SOC, PCI DSS, HIPAA, and other compliance programs.

90. Audit Logging: Integration with AWS CloudTrail for API call logging.

91. Dynamic Data Masking: Can be implemented using Lambda transformations in Firehose.

92. Cross-Account Access: Supports resource policies for cross-account stream access.

93. Secure Key Management: Rotation of KMS keys for enhanced security.

94. IAM Policy Example:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kinesis:PutRecord",
        "kinesis:PutRecords"
      ],
      "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/MyStream"
    }
  ]
}
```
Enter fullscreen mode Exit fullscreen mode

Cost Optimization

95. Shard Hours: Primary cost factor for Kinesis Data Streams, charged per shard-hour.

96. Payload Units: Kinesis Data Firehose charges based on volume of data ingested.

97. Extended Retention: Additional charges for retention beyond 24 hours (KDS) or 24 GB/day (KVS).

98. Enhanced Fan-Out: Additional charges per consumer-shard-hour.

99. Data Transfer: Costs for cross-region or internet data transfer.

100. Right-sizing: Match shard count to actual throughput requirements.

101. Cost Calculation Example for KDS:

 ```
 Shards = 10
 Hours in Month = 730
 Shard-Hour Cost = $0.015
 Extended Retention = 7 days
 Extended Retention Cost = $0.02 per shard-hour

 Base Cost = 10 shards × 730 hours × $0.015 = $109.50
 Retention Cost = 10 shards × 730 hours × $0.02 = $146.00
 Total Monthly Cost = $109.50 + $146.00 = $255.50
 ```
Enter fullscreen mode Exit fullscreen mode

102. Cost Calculation Example for Firehose:

 ```
 Data Volume = 10TB/month
 Processing Cost = $0.029/GB
 S3 Delivery Cost = $0.025/GB

 Monthly Cost = 10TB × 1024GB/TB × ($0.029 + $0.025) = $552.96
 ```
Enter fullscreen mode Exit fullscreen mode

Monitoring and Troubleshooting

103. CloudWatch Metrics: Key metrics for monitoring Kinesis services performance and health.

104. Important KDS CloudWatch Metrics:
- GetRecords.IteratorAgeMilliseconds: Age of the oldest record in a shard
- WriteProvisionedThroughputExceeded: Tracks throttled records
- ReadProvisionedThroughputExceeded: Tracks throttled read requests
- PutRecord.Success and PutRecords.Success: Success rates for write operations
- IncomingBytes and IncomingRecords: Volume of data being written
- GetRecords.Success: Success rate for read operations
- GetRecords.Latency: Time taken for GetRecords operations

105. Important Firehose CloudWatch Metrics:
- DeliveryToS3.Success: Success rate of S3 deliveries
- DeliveryToS3.DataFreshness: Age of the oldest record in the delivery stream
- ThrottledRecords: Number of records throttled
- DeliveryToS3.Latency: Time taken for S3 deliveries
- IncomingBytes and IncomingRecords: Volume of data being ingested

106. Important Kinesis Analytics CloudWatch Metrics:
- KPUs: Number of Kinesis Processing Units in use
- downtime: Application downtime
- fullRestarts: Number of application restarts
- cpuUtilization: CPU utilization of the application
- heapMemoryUtilization: Memory usage of the application

107. CloudWatch Alarms: Set up alarms for critical metrics like iterator age and throttling events.

108. CloudWatch Dashboard Example:

 ```
 Dashboard Elements:
 - GetRecords.IteratorAgeMilliseconds (Max) with threshold line at 30,000ms
 - WriteProvisionedThroughputExceeded (Sum) with annotation for scaling events
 - IncomingBytes and OutgoingBytes (Sum) to visualize throughput
 - PutRecord.Success and GetRecords.Success (Average) as percentage metrics
 ```
Enter fullscreen mode Exit fullscreen mode

109. X-Ray Integration: Trace requests through the entire application stack.

110. Enhanced Monitoring: Use Enhanced Monitoring for per-shard metrics.

111. Log Analysis: Analyze CloudWatch Logs for application-level issues.

112. Common Troubleshooting Scenarios:
- High iterator age: Indicates consumer falling behind
- Throttling events: Indicates under-provisioned shards
- Increased latency: May indicate network or processing bottlenecks
- Partial failures in PutRecords: Requires implementing retry logic

Best Practices and Optimization

113. Partition Key Design: Use high-cardinality keys to distribute data evenly across shards.

114. Batching: Use PutRecords instead of individual PutRecord calls for better throughput.

115. Aggregation: Use KPL aggregation to combine multiple records into a single Kinesis record.

116. Prefetching: Enable prefetching in KCL to reduce latency.

117. Shard Splitting Strategy: Split shards based on traffic patterns and hot keys.

118. Consumer Scaling: Scale consumers proportionally to shard count.

119. Error Handling: Implement comprehensive error handling and retry logic.

120. Monitoring Strategy: Set up proactive monitoring and alerting for key metrics.

121. Performance Testing: Conduct load testing to identify bottlenecks before production.

122. Optimal Record Size: Aim for record sizes between 1KB and 50KB for best performance.

123. Compression: Compress data before sending to Kinesis to reduce costs and increase throughput.

124. Kinesis Producer Library Configuration Example:

 ```java
 KinesisProducerConfiguration config = new KinesisProducerConfiguration()
     .setRegion("us-east-1")
     .setRecordMaxBufferedTime(100)
     .setMaxConnections(24)
     .setRequestTimeout(60000)
     .setAggregationEnabled(true)
     .setCollectionMaxCount(500)
     .setCollectionMaxSize(1024 * 1024);

 KinesisProducer producer = new KinesisProducer(config);
 ```
Enter fullscreen mode Exit fullscreen mode

Integration with AWS Services

125. AWS Lambda: Serverless processing of Kinesis stream data.

126. Amazon S3: Long-term storage destination via Firehose.

127. Amazon Redshift: Data warehousing integration via Firehose.

128. Amazon Elasticsearch/OpenSearch: Real-time analytics and visualization.

129. AWS Glue: ETL processing of Kinesis data.

130. Amazon SageMaker: Machine learning on streaming data.

131. Amazon CloudWatch: Monitoring and alerting for Kinesis services.

132. AWS IoT Core: Ingestion of IoT device data into Kinesis.

133. Amazon MSK: Complementary streaming service for Kafka workloads.

134. AWS Database Migration Service (DMS): CDC data capture to Kinesis.

135. Lambda Integration Example:

 ```yaml
 Resources:
   ProcessKinesisRecords:
     Type: AWS::Lambda::Function
     Properties:
       Handler: index.handler
       Role: !GetAtt LambdaExecutionRole.Arn
       Code:
         ZipFile: |
           exports.handler = async (event) => {
             for (const record of event.Records) {
               const payload = Buffer.from(record.kinesis.data, 'base64').toString('utf8');
               console.log('Decoded payload:', payload);
             }
           };
       Runtime: nodejs14.x

   KinesisEventSourceMapping:
     Type: AWS::Lambda::EventSourceMapping
     Properties:
       BatchSize: 100
       Enabled: true
       EventSourceArn: !GetAtt MyKinesisStream.Arn
       FunctionName: !GetAtt ProcessKinesisRecords.Arn
       StartingPosition: LATEST
 ```
Enter fullscreen mode Exit fullscreen mode

Advanced Features and Patterns

136. Dynamic Resharding: Automatically adjust shard count based on throughput requirements.

137. Fan-Out Pattern: Distribute stream data to multiple consumers for parallel processing.

138. Dead Letter Queue: Capture and handle failed records for later processing.

139. Stream Enrichment: Combine stream data with reference data for enhanced analytics.

140. Time-Window Processing: Aggregate and analyze data in time-based windows.

141. Stream Joining: Combine multiple streams for correlated analysis.

142. Exactly-Once Processing: Implement deduplication and idempotent operations.

143. Stream Archiving: Preserve raw stream data for compliance and reprocessing.

144. Schema Evolution: Handle changing data formats in long-running streams.

145. Dynamic Scaling Code Example:

 ```python
 def adjust_shard_count(stream_name, metric_value, threshold):
     current_shards = get_shard_count(stream_name)
     if metric_value > threshold * 0.8:
         ## Scale up by 25% if approaching threshold
         new_shard_count = math.ceil(current_shards * 1.25)
         client.update_shard_count(
             StreamName=stream_name,
             TargetShardCount=new_shard_count,
             ScalingType='UNIFORM_SCALING'
         )
     elif metric_value < threshold * 0.3 and current_shards > 1:
         ## Scale down if utilization is low
         new_shard_count = max(1, math.floor(current_shards * 0.75))
         client.update_shard_count(
             StreamName=stream_name,
             TargetShardCount=new_shard_count,
             ScalingType='UNIFORM_SCALING'
         )
 ```
Enter fullscreen mode Exit fullscreen mode

Disaster Recovery and High Availability

146. Multi-AZ Resilience: Kinesis services automatically replicate data across multiple Availability Zones.

147. Cross-Region Replication: Implement custom solutions or use Firehose to replicate streams across regions.

148. Backup and Restore: Use Firehose to back up all stream data to S3.

149. Stream Recreation Strategy: Document procedures for recreating streams in disaster scenarios.

150. Consumer Failover: Implement consumer application redundancy across regions.

151. Recovery Point Objective (RPO): Typically seconds to minutes depending on replication strategy.

152. Recovery Time Objective (RTO): Can be minutes to hours depending on implementation.

153. Chaos Testing: Regularly test failure scenarios to validate recovery procedures.

154. Cross-Region Replication Pattern:

 ```
 Region A:
 Kinesis Stream → Lambda → Kinesis Stream in Region B

 With checkpointing to DynamoDB Global Table for tracking progress
 ```
Enter fullscreen mode Exit fullscreen mode

Kinesis Data Streams vs. Other AWS Services

155. Kinesis vs. SQS: Kinesis for real-time streaming with multiple consumers; SQS for decoupled message processing.

156. Kinesis vs. EventBridge: Kinesis for high-volume data streams; EventBridge for event-driven architectures.

157. Kinesis vs. MSK: Kinesis for fully managed streaming; MSK for Kafka compatibility and control.

158. Kinesis vs. IoT Core: Kinesis for general-purpose streaming; IoT Core for device connectivity.

159. Kinesis vs. DynamoDB Streams: Kinesis for general streaming; DynamoDB Streams for database change data capture.

160. Service Selection Criteria:
- Data volume and velocity
- Retention requirements
- Processing complexity
- Integration requirements
- Management overhead tolerance

Use Cases and Architectures

161. Real-time Analytics: Process and analyze streaming data for immediate insights.

162. Log and Event Processing: Centralize and process logs from multiple sources.

163. IoT Data Processing: Ingest and analyze data from IoT devices.

164. Clickstream Analysis: Track and analyze user behavior on websites and applications.

165. Fraud Detection: Identify suspicious patterns in real-time transaction streams.

166. Stock Market Data Processing: Analyze market data for trading algorithms.

167. Social Media Sentiment Analysis: Process social media feeds for brand monitoring.

168. Gaming Analytics: Track player behavior and game performance.

169. Real-time Recommendations: Update recommendation engines with current user behavior.

170. Reference Architecture Example:

 ```
 Data Sources → Kinesis Data Streams → [Lambda for Processing, Kinesis Analytics for Aggregation] → [DynamoDB for Storage, CloudWatch for Alerting, S3 via Firehose for Archiving]
 ```
Enter fullscreen mode Exit fullscreen mode

Deployment and Infrastructure as Code

171. CloudFormation Templates: Define Kinesis resources using infrastructure as code.

172. AWS CDK: Use programming languages to define Kinesis infrastructure.

173. Terraform: Alternative IaC tool for Kinesis deployment.

174. CI/CD Integration: Automate deployment of Kinesis applications.

175. Environment Parity: Maintain consistent configurations across environments.

176. CloudFormation Example:

 ```yaml
 Resources:
   MyKinesisStream:
     Type: AWS::Kinesis::Stream
     Properties:
       Name: my-data-stream
       RetentionPeriodHours: 48
       ShardCount: 5
       StreamEncryption:
         EncryptionType: KMS
         KeyId: alias/aws/kinesis
       Tags:
         - Key: Environment
           Value: Production

   MyFirehoseDeliveryStream:
     Type: AWS::KinesisFirehose::DeliveryStream
     Properties:
       DeliveryStreamName: my-delivery-stream
       DeliveryStreamType: KinesisStreamAsSource
       KinesisStreamSourceConfiguration:
         KinesisStreamARN: !GetAtt MyKinesisStream.Arn
         RoleARN: !GetAtt FirehoseRole.Arn
       ExtendedS3DestinationConfiguration:
         BucketARN: !GetAtt DestinationBucket.Arn
         BufferingHints:
           IntervalInSeconds: 60
           SizeInMBs: 50
         CompressionFormat: GZIP
         Prefix: "year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/"
         RoleARN: !GetAtt FirehoseRole.Arn
 ```
Enter fullscreen mode Exit fullscreen mode

Recent Features and Innovations

177. On-Demand Capacity Mode: Pay-per-use pricing model without provisioning shards.

178. Server-Side Encryption with Customer Master Keys: Enhanced encryption options.

179. Enhanced Fan-Out: Dedicated throughput for consumers.

180. HTTP/2 Support: Improved efficiency for data streaming.

181. Longer Retention Periods: Up to 365 days for extended data availability.

182. Kinesis Data Streams On-Demand Mode Calculation:

 ```
 Data Volume = 100GB/day
 On-Demand Rate = $0.08/GB
 Monthly Cost = 100GB × 30 days × $0.08 = $240
 ```
Enter fullscreen mode Exit fullscreen mode

Operational Excellence

183. Automated Monitoring: Set up comprehensive CloudWatch dashboards and alarms.

184. Runbooks: Document common operational procedures and troubleshooting steps.

185. Capacity Planning: Regularly review usage patterns and adjust capacity.

186. Performance Benchmarking: Establish baseline performance metrics.

187. Disaster Recovery Testing: Regularly test recovery procedures.

188. Operational Metrics Dashboard Elements:
- Shard utilization percentage
- Iterator age trends
- Throttling events over time
- Success rate percentages
- Consumer lag metrics

Kinesis Limits Summary

189. KDS Limits Summary:
- Shards per region: 500 (default, can be increased)
- Record size: 1MB max
- Retention: 24 hours to 365 days
- PutRecord: 1,000 records/sec per shard
- GetRecords: 5 transactions/sec per shard
- Resharding: 5 transactions/sec per account

190. Firehose Limits Summary:
- Delivery streams: 50 per region (default)
- Record size: 1,000KB max
- Buffer size: 1-128MB
- Buffer interval: 60-900 seconds
- Throughput: 5,000 records/sec or 5MB/sec per delivery stream

191. Kinesis Analytics Limits Summary:
- KPUs: 1-64 (auto-scaling)
- Input/output streams: 64 each
- SQL queries: 100 per application

192. Kinesis Video Streams Limits Summary:
- Fragment size: 50MB max
- Retention: 1 hour to 10 years
- Streams per account: 100 (default)
- Bandwidth: 12.5MB/sec per stream

Future-Proofing and Evolution

193. Stay Updated: Follow AWS announcements for new features and improvements.

194. Version Compatibility: Plan for KCL and KPL version upgrades.

195. Scalability Planning: Design for 10x current capacity requirements.

196. Feature Adoption Strategy: Evaluate and adopt new features based on business needs.

197. Architectural Reviews: Periodically review stream architecture against best practices.

198. Technology Radar: Maintain awareness of alternative streaming technologies.

199. Feedback Loop: Provide feedback to AWS on feature requests and improvements.

200. Continuous Learning: Invest in team training on Kinesis best practices and patterns.

Top comments (0)