AWS Spring Boot Integration
Latest stable Based on AWS release 0.4.0
Library manual grounded in the 0.4.0 release source.
Problem
Section titled “Problem”Spring Boot 4 auto-configuration, coroutine templates, repositories, listeners, configuration sources, and Micrometer instrumentation for selected AWS services.
When to use it
Section titled “When to use it”Use it when Spring should own AWS clients and application-facing templates while the application keeps explicit control of service SDK dependencies.
Coordinates
Section titled “Coordinates”Applications select one central BOM version.
dependencies { implementation(platform("io.github.bluetape4k:bluetape4k-dependencies:<version>")) implementation("io.github.bluetape4k.aws:bluetape4k-aws-spring-boot")}AWS service SDKs follow a compileOnly policy; add the services actually used as runtime dependencies.
Core concepts
Section titled “Core concepts”Conditional auto-configurations back off when a service SDK is absent. Properties customize region, endpoint, credentials, and service behavior; templates expose suspend operations; listener containers own background jobs.
Quick start
Section titled “Quick start”@Serviceclass ObjectStore(private val s3: S3Operations) { suspend fun put(bucket: String, key: String, bytes: ByteArray) = s3.upload(bucket, key, bytes)}API by task
Section titled “API by task”S3 and Transfer Manager, DynamoDB repositories and DAX, SQS listener/runtime, SNS, SES, KMS, CloudWatch, IMDS, Secrets Manager, Parameter Store, S3 Access Grants/Vectors, and Exposed.
Recommended patterns
Section titled “Recommended patterns”Put client and background-job ownership at one application boundary. Configure region, credentials, and endpoints once instead of rebuilding them per call.
Integrations
Section titled “Integrations”Import the central BOM, add this library without a version, then add only software.amazon.awssdk:<service> modules used by enabled auto-configurations.
Configuration
Section titled “Configuration”Use the bluetape4k.aws property namespace, endpoint overrides for emulators, and customizer beans when client-builder control must stay in application code.
Failure modes
Section titled “Failure modes”Most missing-bean failures mean the service SDK is absent or a condition did not match. SQS visibility, listener concurrency, payload conversion, and shutdown timeouts require explicit tuning.
Operations
Section titled “Operations”Expose Micrometer metrics, make listener acknowledgement policy explicit, close custom clients, and keep environment property-source calls out of request paths.
Testing
Section titled “Testing”Use ApplicationContextRunner for conditional beans and Floci-backed integration tests for enabled services. Test listener shutdown and redelivery, not only successful sends.
Workshops and learning path
Section titled “Workshops and learning path”Read auto-configuration, then storage-and-messaging, then runtime-operations; run the four released Spring Boot examples.
Limitations
Section titled “Limitations”This is not awspring and does not enable every AWS service automatically. Optional integrations remain absent until their classes and properties are present.
Release diagrams
Section titled “Release diagrams”These diagrams are loaded directly from README assets published with the 0.4.0 release and pinned to its immutable commit. They describe this manual’s released structure and runtime flows, not later Snapshot changes. Select a preview to open the SVG at the same release commit.
AWS Spring Boot architecture diagram
Section titled “AWS Spring Boot architecture diagram”Release README: aws-spring-boot/README.md
AWS Spring Boot configuration flow diagram
Section titled “AWS Spring Boot configuration flow diagram”Release README: aws-spring-boot/README.md
AWS Spring Boot SQS listener sequence diagram
Section titled “AWS Spring Boot SQS listener sequence diagram”Release README: aws-spring-boot/README.md


