DynamoDB Stream Component
Available as of Camel 2.7
The DynamoDB Stream component supports receiving messages from Amazon DynamoDB Stream service.
You must have a valid Amazon Web Services developer account, and be signed up to use Amazon DynamoDB Streams. More information are available at AWS DynamoDB
The stream needs to be created prior to it being used.
Required DynampDBStream component options
You have to provide the amazonDynamoDbStreamsClient in the Registry with proxies and relevant credentials configured.
You can provide a literal string as the sequence number or provide a bean in the registry. An example of using the bean would be to save your current position in the change feed and restore it on Camel startup.
It is an error to provide a sequence number that is greater than the largest sequence number in the describe-streams result, as this will lead to the AWS call returning an HTTP 400.
This component implements the Batch Consumer.
This allows you for instance to know how many messages exists in this batch and for instance let the Aggregator aggregate this number of messages.
You will need to create an instance of AmazonDynamoDBStreamsClient and bind it to the registry
Providing AWS Credentials
It is recommended that the credentials are obtained by using the DefaultAWSCredentialsProviderChain that is the default when creating a new ClientConfiguration instance, however, a different AWSCredentialsProvider can be specified when calling createClient(...).
Coping with Downtime
AWS DynamoDB Streams outage of less than 24 hours
The consumer will resume from the last seen sequence number (as implemented for CAMEL-9515), so you should receive a flood of events in quick succession, as long as the outage did not also include DynamoDB itself.
AWS DynamoDB Streams outage of more than 24 hours
Given that AWS only retain 24 hours worth of changes, you will have missed change events no matter what mitigations are in place.
Maven users will need to add the following dependency to their pom.xml.