Skip to content

Conversation

@MatejNedic
Copy link
Member

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

💡 Motivation and Context

💚 How did you test it?

📝 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

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.

Assuming it is compatible with #1479 we can merge!

But if we are adding Kinesis integration we can also think about:

Copy link
Contributor

@artembilan artembilan left a comment

Choose a reason for hiding this comment

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

Just couple hygiene nit-picks.
This affects my PR for spring-cloud-aws-kinesis module only at the dependency .
The KPL/KCL could be auto-configured in other PRs.
Thanks

@MatejNedic
Copy link
Member Author

Hey @artembilan I will add KPL/KCL auto configuration after I merge yours PR. Will then align dependencies and other stuff.

@github-actions github-actions bot added the component: sqs SQS integration related issue label Oct 23, 2025
Copy link
Contributor

@artembilan artembilan left a comment

Choose a reason for hiding this comment

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

Looks great so far!


@ConditionalOnMissingBean
@Bean
public Scheduler scheduler(ObjectProvider<DynamoDbAsyncClient> dynamoDbClient,
Copy link
Contributor

Choose a reason for hiding this comment

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

This is an active components which requires some lifecycle control.
Plus you cannot guess if end-user is interested only in one of this.
We may go something like SchedulerFactory to hide some common properties, but the rest should be left up to end-user configuration.

This about this like the listener container behind @SqsListener.
And I believe eventually we can come up with something like @KclListener

Copy link
Member Author

@MatejNedic MatejNedic Oct 23, 2025

Choose a reason for hiding this comment

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

I had a same idea for 4.1 to introduce KclListener and work on it! :)

Edit:

Actually thinking about it I will take little bit longer do dig into SqsContainer and KafkaContainer and will do it as part od 4.0.0

Copy link
Member Author

@MatejNedic MatejNedic Oct 23, 2025

Choose a reason for hiding this comment

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

I will take some time reading through Spring Messaging, Spring Kafka and SQS integration. I need more reading on this, but i understand the point behind SchedularFactory and containers. Tnx on constructive feedback Artem, I appreciate it much.

@ConditionalOnClass({ KinesisAsyncClient.class, Scheduler.class })
@EnableConfigurationProperties({ KinesisClientLibraryProperties.class })
@AutoConfigureAfter({ CredentialsProviderAutoConfiguration.class, RegionProviderAutoConfiguration.class,
KinesisAutoConfiguration.class })
Copy link
Contributor

Choose a reason for hiding this comment

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

Cannot we use CloudWatchExportAutoConfiguration instead of ObjectProvider?
I'm not sure if DynamoDbAsyncClient is the goal in this project yet, though...

Copy link
Member Author

@MatejNedic MatejNedic Oct 23, 2025

Choose a reason for hiding this comment

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

Will move away from ObjectProvider since both DynamoDbAsyncClient and CloudWatchAsync client are not nullabe for Scheduler.

Meaning will have to play little bit with async autoconfiguration in general since most of our clients are sync

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component: sqs SQS integration related issue type: dependency-upgrade Dependency version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants