AWS SDK for Java v2 Extensions
Latest stable Based on AWS release 0.4.0
Library manual grounded in the 0.4.0 release source.
Problem
Section titled “Problem”Kotlin builders and sync, CompletableFuture, and coroutine APIs over AWS SDK for Java v2 clients.
When to use it
Section titled “When to use it”Choose it when the application uses Java SDK v2 clients, needs both blocking and asynchronous paths, or integrates with Spring Boot.
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-java")}AWS service SDKs follow a compileOnly policy; add the services actually used as runtime dependencies.
Core concepts
Section titled “Core concepts”Factories build clients; extensions keep the AWS client type visible; async extensions expose futures; coroutine extensions await those futures. The application owns every created client and must close it.
Quick start
Section titled “Quick start”val s3 = S3AsyncClient.create()try { s3.putAsByteArray(bucket, key, payload) val objects = s3.listAllObjects(bucket).toList()} finally { s3.close()}API by task
Section titled “API by task”S3 object and transfer helpers, DynamoDB enhanced repositories and batch execution, SQS/SNS messaging, KMS, CloudWatch, Kinesis, SES, STS, and request-model builders.
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”Spring Boot and Ktor modules build on this library. Add only the Java SDK v2 services used at runtime, for example software.amazon.awssdk:s3.
Configuration
Section titled “Configuration”Set region, credentials, endpoint override, HTTP implementation, retry policy, and timeouts on the AWS client builder before sharing the client.
Failure modes
Section titled “Failure modes”Blank queue URLs, incomplete S3 pagination, missing service jars, blocking calls on coroutine threads, and leaked async clients are the common failure modes.
Operations
Section titled “Operations”Reuse thread-safe clients, bound concurrency, monitor retries and throttling, and make copy-then-delete S3 move semantics explicit.
Testing
Section titled “Testing”Use Floci first with endpoint override and static test credentials; use LocalStack only for service behavior that Floci does not cover.
Workshops and learning path
Section titled “Workshops and learning path”Read client-lifecycle, then sync-async-coroutines, then service-patterns; continue with the released S3, DynamoDB, and SQS examples.
Limitations
Section titled “Limitations”The artifact does not bring every AWS service SDK at runtime. Coroutine helpers do not turn synchronous clients into non-blocking clients.
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 Java architecture diagram
Section titled “AWS Java architecture diagram”Release README: aws-java/README.md
AWS Java operation flow diagram
Section titled “AWS Java operation flow diagram”Release README: aws-java/README.md
AWS Java coroutine sequence diagram
Section titled “AWS Java coroutine sequence diagram”Release README: aws-java/README.md


