Spring Integration for AWS

The 2.0 version is the next generation of Spring Integration for AWS Framework. It is based on Java 8, Spring Framework & Spring Integration 5.0 and Spring Cloud for AWS2.0.
In this new instalment we have improved all MessageHandler implementations to extend common AbstractAwsMessageHandler with the AsyncHandler, failureChannel and ErrorMessageStrategy support.
A set of AwsHeaders.RECEIVED_ headers have been added to avoid confusion on the outbound side when request messages arrive from the upstream AWS Inbound Channel Adapter.
This comes handy when using it with a Spring Cloud Stream “processor-application” that requires same inbound and outbound bindings.
The KinesisMessageDrivenChannelAdapter now supports error handling via errorChannel and a new KinesisMessageHeaderErrorMessageStrategy provides useful AwsHeaders.RAW_RECORD information in the ErrorMessage headers.

Spring Cloud Stream Binder for AWS Kinesis

The Spring Cloud Stream Binder for AWS Kinesis provides the binding implementation for the Spring Cloud Stream.
This implementation uses Spring Integration AWS Kinesis Channel Adapters at its foundation.
The following captures how the Kinesis Binder implementation maps each of the configured destination to a AWS Kinesis Streams:

Unlike Apache Kafka the AWS Kinesis doesn’t provide out-of-the-box support for consumer groups.
The support of this feature is implemented as a part of MetadataStore.
A key for shard checkpoints in the KinesisMessageDrivenChannelAdapter - [CONSUMER_GROUP]:[STREAM]:[SHARD_ID].
By default Kinesis Binder uses DynamoDbMetaDataStore implementation, which is also inherited from the Spring Integration for AWS project as mentioned above.

Similar to RabbitMQ and Apache Kafka, it is possible to override binding configurations, both at the producer and consumer.
They are exposed in the KinesisConsumerProperties and KinesisProducerProperties, respectively.

Many thanks to all the community members who helped shape this project with their valuable inputs and contributions!