Skip to content

Conversation

@artembilan
Copy link
Contributor

@artembilan artembilan commented Sep 4, 2025

This is essentially a migration of respective classes and tests from the Spring Integration AWS project

  • The DynamoDbMetadataStore is a Spring Integration ConcurrentMetadataStore implementation for AWS DynamoDB
  • The DynamoDbLockRegistry is a distributed lock implementation AWS DynamoDB based on respective abstraction from Spring Integration
  • The DynamoDbLockRepository a supporting class for DynamoDbLockRegistry to perform low-level operations on lock items in the DynamoDB table
  • The LocalstackContainerTest interface provides a static context to initialize a Localstack Docker container only once for the whole test suite
  • Change DynamoDbTemplateIntegrationTest to reuse LocalstackContainerTest API
  • Add spring-cloud-aws-starter-integration-dynamodb module to expose DynamoDB and Spring Integration dependencies

The auto-configuration for these new components is a different story and is not clear yet.

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

See automatic commit message applied to this PR description above

💡 Motivation and Context

This solve the problem of Spring Integration AWS support from now on.
Plus such a merge of Spring Integration AWS into Spring Cloud AWS would give a one-stop-shop for community to see and chose desired AWS service integration.
Having Spring Integration feature in this project would also minimize a release process burden.

💚 How did you test it?

Added respective tests to the project based on Localstack.
Ran from IDE and via Maven.

📝 Checklist

  • I reviewed submitted code
  • I added tests to verify changes
  • I updated reference documentation to reflect the change
  • All tests passing
  • No breaking changes

🔮 Next steps

This is an initial proposal for Spring Integration AWS merge over here.
If we agree on the approach suggested here to distribute Spring Integration AWS feature into respective existing modules in Spring Cloud AWS, then other similar PRs are coming afterward.

This is essentially a migration of respective classes and tests from the Spring Integration AWS project

* The `DynamoDbMetadataStore` is a Spring Integration `ConcurrentMetadataStore`
implementation for AWS DynamoDB
* The `DynamoDbLockRegistry` is a distributed lock implementation AWS DynamoDB
based on respective abstraction from Spring Integration
* The `DynamoDbLockRepository` a supporting class for `DynamoDbLockRegistry`
to perform low-level operations on lock items in the DynamoDB table
* The `LocalstackContainerTest` interface provides a static context to initialize
a Localstack Docker container only once for the whole test suite
* Change `DynamoDbTemplateIntegrationTest` to reuse `LocalstackContainerTest` API
* Add `spring-cloud-aws-starter-integration-dynamodb` module to expose DynamoDB and Spring Integration dependencies

The auto-configuration for these new components is a different story and is not clear yet
@github-actions github-actions bot added type: dependency-upgrade Dependency version bump component: dynamodb DynamoDB integration related issue labels Sep 4, 2025
Copy link
Contributor

@maciejwalkowiak maciejwalkowiak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @artembilan!

* @since 4.0
*/
@Testcontainers(disabledWithoutDocker = true)
public interface LocalstackContainerTest {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an interesting addition. Either we will keep it and use in other integrations or replace with something different, but it's not something we need to resolve before merging this pull request.

@artembilan
Copy link
Contributor Author

Thank you, guys, for review!
I want to say that I have missed docs yet.
Just wanted to give it a spin first to see that we all are on the same page.

@maciejwalkowiak maciejwalkowiak merged commit 6bdfae9 into awspring:main Sep 11, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component: dynamodb DynamoDB integration related issue type: dependency-upgrade Dependency version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants