Skip to content

[aws-events-targets] Add DLQ support for Kinesis Target #31428

@ryanschulz46

Description

@ryanschulz46

Describe the feature

This is an available feature through the AWS Console already and is supported in many other target but not Kinesis.

[aws-events] Add support for Rule Dead Letter Queue: #11612
feat(events-targets): Add DLQ support for SQS target: #16417

Use Case

Use aws-cdk-lib/aws-events-targets to create Kinesis Targets, but also support a DLQ for such target

Proposed Solution

Extend aws-cdk-lib/aws-events-targets/kinesis-stream/KinesisStreamProps to extend TargetBaseProps (similar to SQS)

import * as events from 'aws-cdk-lib/aws-events';
import * as event_targets from 'aws-cdk-lib/aws-events-targets';
import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as kinesis from 'aws-cdk-lib/aws-kinesis';

// Create Stream and DLQ
const myKinesisStream = new kinesis.Stream(this, 'MyKinesisStream', {
    streamName: 'my-kinesis-stream',
    streamMode: kinesis.StreamMode.ON_DEMAND,
});
const myDeadLetterQueue = new sqs.Queue(this, 'MyDeadLetterQueue');

// Kinesis Target created with DLQ configured
const myKinesisTarget = new event_targets.KinesisStream(myKinesisStream, {deadLetterQueue: myDeadLetterQueue});


// Example Target Use-case: Connecting EventBus to Kinesis Stream now has DLQ
const myEventBus = new events.EventBus(this, 'MyEventBus', { eventBusName: 'my-event-bus'});

const myEventRule = new events.Rule(this, 'MyEventRule', {
    eventBus: myEventBus,
    eventPattern: ['pattern'],
    targets: [myKinesisTarget],
});

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

CDK version used

2.149.0

Environment details (OS name and version, etc.)

AL2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions