Skip to content

Conversation

thornhillcody
Copy link
Contributor

  • Synchronize replacement of scheduled flush in RequestBatchBuffer to prevent orphaned, uncanceled scheduled flushes

Motivation and Context

This change enables the SqsAsyncBatchManager to make batches of correct size during high concurrency. More info in #6374

Modifications

I chose to synchronize the cancel and assignment of the scheduledFlush in RequestBatchBuffer.putScheduledFlush(). This is the only place this is used and it's an internal API, so I felt comfortable changing the name to make it more clear what it's doing.

Testing

Ran sample app used to reproduce the issue (found in bug report) and verified the average batch sizes were as expected with 500 TPS, 1000 TPS, 5000 TPS.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

@thornhillcody thornhillcody requested a review from a team as a code owner August 27, 2025 20:17
verify(scheduledFlush).cancel(false);
}

@Test
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we add a new Junit Test class testing end to end something like

import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
import static org.assertj.core.api.Assertions.assertThat;

import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
import com.github.tomakehurst.wiremock.verification.LoggedRequest;
import java.net.URI;
import java.time.Duration;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.services.sqs.SqsAsyncClient;

public class HighThroughputBatchingTest {

    private static final String QUEUE_URL = "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue";
    private static final int MESSAGE_COUNT = 5000;
    private static final int CONCURRENT_THREADS = 50;
    private static final int MAX_BATCH_SIZE = 10;

    @RegisterExtension
    static WireMockExtension wireMock = WireMockExtension.newInstance()
                                                         .options(wireMockConfig().dynamicPort())
                                                         .configureStaticDsl(true)
                                                         .build();

    private SqsAsyncClient client;
    private SqsAsyncBatchManager batchManager;

    @BeforeEach
    void setUp() {
        client = SqsAsyncClient.builder()
                               .endpointOverride(URI.create("http://localhost:" + wireMock.getPort()))
                               .checksumValidationEnabled(false)
                               .credentialsProvider(StaticCredentialsProvider.create(
                                   AwsBasicCredentials.create("key", "secret")))
                               .build();

        batchManager = SqsAsyncBatchManager.builder()
                                           .client(client)
                                           .scheduledExecutor(Executors.newScheduledThreadPool(10))
                                           .overrideConfiguration(config -> config
                                               .sendRequestFrequency(Duration.ofMillis(10))
                                               .maxBatchSize(MAX_BATCH_SIZE))
                                           .build();
    }

    @AfterEach
    void tearDown() {
        batchManager.close();
        client.close();
    }

    @Test
    void shouldEfficientlyBatchMessagesUnderHighLoad() throws Exception {
        // Given: SQS returns success for batch requests
        stubFor(post(anyUrl())
                    .willReturn(aResponse()
                                    .withStatus(200)
                                    .withBody("{\"Successful\": []}")));

        // When: Send 5000 messages concurrently using 50 threads
        ExecutorService executor = Executors.newFixedThreadPool(CONCURRENT_THREADS);
        CountDownLatch startSignal = new CountDownLatch(1);

        for (int i = 0; i < MESSAGE_COUNT; i++) {
            final String messageBody = String.valueOf(i);
            executor.submit(() -> {
                try {
                    startSignal.await(); // Wait to start all at once
                    batchManager.sendMessage(builder ->
                                                 builder.queueUrl(QUEUE_URL)
                                                        .messageBody(messageBody));
                } catch (Exception ignored) {
                    // Test will fail on assertions if messages aren't sent
                }
            });
        }

        startSignal.countDown(); // Fire all threads simultaneously
        executor.shutdown();
        executor.awaitTermination(10, TimeUnit.SECONDS);

        // Allow batch manager to complete processing
        Thread.sleep(2000);

        // Then: Verify messages were efficiently batched
        List<LoggedRequest> batchRequests = findAll(postRequestedFor(anyUrl()));

        // Calculate batching metrics
        List<Integer> batchSizes = batchRequests.stream()
                                                .map(req -> req.getBodyAsString().split("\"Id\"").length - 1)
                                                .collect(Collectors.toList());

        double avgBatchSize = batchSizes.stream()
                                        .mapToInt(Integer::intValue)
                                        .average()
                                        .orElse(0);

        double fullBatchRatio = batchSizes.stream()
                                          .filter(size -> size >= 9)
                                          .count() / (double) batchSizes.size();

        // Assert efficient batching
        assertThat(avgBatchSize)
            .as("Average batch size")
            .isGreaterThan(8.0);

        assertThat(fullBatchRatio)
            .as("Ratio of nearly full batches (9-10 messages)")
            .isGreaterThan(0.8);

        assertThat(batchRequests.size())
            .as("Total batch requests for %d messages", MESSAGE_COUNT)
            .isLessThan(MESSAGE_COUNT / 5);
    }

   //please add more test cases with different combination of maxBatchSize(too low 1 and max 10) and sendFrequency(too long and too short  )

}

Copy link
Contributor Author

@thornhillcody thornhillcody Sep 22, 2025

Choose a reason for hiding this comment

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

I used this as a base with some changes to make it work. Added a rate limiter to spread out traffic and a small batch frequency to reduce the amount of time required to run the test. Also did medium/small batch size tests.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

[INFO] Running software.amazon.awssdk.services.sqs.batchmanager.BatchingEfficiencyUnderLoadTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.365 s -- in software.amazon.awssdk.services.sqs.batchmanager.BatchingEfficiencyUnderLoadTest

Takes 6 seconds (2 per test) as it is.


private void manualFlushBuffer(String batchKey,
Map<String, BatchingExecutionContext<RequestT, ResponseT>> flushableRequests) {
requestsAndResponsesMaps.cancelScheduledFlush(batchKey);
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we remove the cancelScheduledFlush here since we are already cancelling it in Line 112 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I opted to leave it in because you'd potentially run a scheduled flush while the manual flush is happening; I didn't see a downside to leaving the cancel in. Seems minor, I don't feel strongly either way.

Copy link
Contributor

Choose a reason for hiding this comment

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

you'd potentially run a scheduled flush while the manual flush is happening;

Yeah , make sense , can we add a comment about this .

Thanks for doing a deep dive on this issue and raising the PR 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We can certainly remove the first cancel. flushBuffer shouldn't take a significant amount of time (async client), so canceling after will be fine.

}
}

public void cancelScheduledFlush() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we also ad synchronization here since cancelScheduledFlush() can be independently call

    public void cancelScheduledFlush() {
        synchronized (scheduledFlushLock) {
            scheduledFlush.cancel(false);
        }
    }

import software.amazon.awssdk.annotations.SdkInternalApi;

@SdkInternalApi
public final class RequestBatchBuffer<RequestT, ResponseT> {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we please add some test cases in RequestBatchBufferTest for this fix ?

@joviegas
Copy link
Contributor

Can you please merge latest changes from master, since some codebuild check are failing .

@thornhillcody thornhillcody force-pushed the thornhillcody/fix-sqs-async-batchman-flush branch 2 times, most recently from 746d4c5 to 0019ecc Compare September 22, 2025 21:46
@thornhillcody
Copy link
Contributor Author

OK, I think I've addressed your comments @joviegas

@thornhillcody thornhillcody force-pushed the thornhillcody/fix-sqs-async-batchman-flush branch from dd18853 to 5ed941d Compare September 25, 2025 18:10
@joviegas joviegas enabled auto-merge September 26, 2025 15:13
Copy link

@joviegas joviegas added this pull request to the merge queue Sep 26, 2025
Merged via the queue into aws:master with commit 34283ff Sep 26, 2025
15 of 33 checks passed
dagnir added a commit that referenced this pull request Sep 26, 2025
* Amazon DataZone Update: adding IAM principal id to IAM user profile details

* Amazon Elastic VMware Service Update: CreateEnvironment API now supports parameters (isHcxPublic & hcxNetworkAclId) for HCX migration via public internet, adding flexibility for migration scenarios. New APIs have been added for associating (AssociateEipToVlan) & disassociating (DisassociateEipFromVlan) Elastic IP (EIP) addresses.

* Amazon EC2 Container Service Update: This release supports hook details for Amazon ECS lifecycle hooks.

* Amazon EMR Containers Update: Added nodeLabel support in container provider to aid hardware isolation support for virtual cluster and security configuration.

* Amazon Relational Database Service Update: Adds support for end-to-end IAM authentication in RDS Proxy for MySQL, MariaDB, and PostgreSQL engines.

* Amazon QuickSight Update: This release adds support for Account level custom permissions, additional Dashboard Options, and Null support for Q&A.

* Amazon Prometheus Service Update: Add Vended Logs APIs for Amazon Prometheus Managed Collector

* AWS Elemental MediaLive Update: AWS Elemental MediaLive adds a new feature in MediaPackage output group that enables MediaPackage V2 users to control HLS-related parameters directly in MediaLive. These parameter settings are then reflected in MediaPackage outputs, providing more streamlined control over HLS configurations.

* Amazon GuardDuty Update: Updated Java SDK implementation of entity set status in GuardDuty API.

* Updated endpoints.json and partitions.json.

* Release 2.33.8. Updated CHANGELOG.md, README.md and all pom.xml.

* fix multi line xml tag, and add maven central validation (#6400)

* bump jackson to 2.19.0 (#6358)

* Update version

* Add include source in location flag

* Add changelog

* Update to next snapshot version: 2.33.9-SNAPSHOT

* Payment Cryptography Control Plane Update: Add support for certificates to be signed by 3rd party certificate authorities. New API GetCertificateSigningRequest API and support for providing certificates at run-time for tr-34 import/export

* Release 2.33.9. Updated CHANGELOG.md, README.md and all pom.xml.

* added part count validation for download request (#6353)

* added part count and content range validation for download

* changelog added

* remove contentRange validation since part size could different

* feedback addressed

* delete unused utils

* change validation in futurn complete

* added unit test

* change test name

* minor change

* minor change

* Integration test added

* Unit test fixed

* swap method body of onError and handleError

* minor change

* Update to next snapshot version: 2.33.10-SNAPSHOT

* Remove flaky integ test that has been covered in set up (#6417)

* Exclude release-scripts and scripts folder (#6266)

* AWS Health Imaging Update: Added support for OpenID Connect (OIDC) custom authorizer

* CloudWatch Observability Admin Service Update: CloudWatch Observability Admin adds the ability to enable telemetry centralization in customers' Organizations. The release introduces new APIs to manage centralization rules, which define settings to replicate telemetry data to a central destination in the customers' Organization.

* AWS Cost Explorer Service Update: Added endpoint support for eusc-de-east-1 region.

* AWS S3 Control Update: Introduce three new encryption filters: EncryptionType (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, NOT-SSE), KmsKeyArn (for SSE-KMS and DSSE-KMS), and BucketKeyEnabled (for SSE-KMS).

* Updated endpoints.json and partitions.json.

* Release 2.33.10. Updated CHANGELOG.md, README.md and all pom.xml.

* Removing SMS service

* remove from aws-sdk-java/pom.xml

* Remove changelog

* Preserve content-length when calling mark in SdkLengthAwareInputStream (#6408)

* Preserve content-length when calling mark in SdkLengthAwareInputStream

* Add test case

* Ensure that markedRemaining is initialized

* Flaky test fix for StoringSubscriberTest (#6420)

* flaky test fix

* changelog removed

* Update to next snapshot version: 2.33.11-SNAPSHOT

* Amazon OpenSearch Ingestion Update: Adds support for cross-account ingestion for push-based sources. This includes resource policies for sharing pipelines across accounts and features for managing pipeline endpoints which enable accessing pipelines across different VPCs, including VPCs in other accounts.

* Amazon Interactive Video Service RealTime Update: IVS now offers customers the ability to control the positioning of participants in both grid and PiP layouts based on custom attribute values in participant tokens.

* AWS Budgets Update: Add support for custom time periods in budget configuration

* Amazon CloudWatch Logs Update: Cloudwatch Logs added support for 2 new API parameters in metric and subscription filter APIs to filter log events based on system field values and emit system field values as dimensions and send them to customer destination as additional metadata.

* Updated endpoints.json and partitions.json.

* Release 2.33.11. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.33.12-SNAPSHOT

* Remove unused s3 classes (#6428)

* AWS Parallel Computing Service Update: Add support for Amazon EC2 Capacity Blocks for ML

* Amazon Elastic Compute Cloud Update: Add mac-m4.metal and mac-m4pro.metal instance types.

* AWS Network Firewall Update: Network Firewall now prevents TLS handshakes with the target server until after the Server Name Indication (SNI) has been seen and verified. The monitoring dashboard now provides deeper insights into PrivateLink endpoint candidates and offers filters based on IP addresses and protocol.

* Release 2.33.12. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.33.13-SNAPSHOT

* Feature/master/utils lite lambda trace (#6404)

* Add utils-lite package (#6395)

Add utils-lite package

* Add support for concurrent trace id propagation (#6403)

Add support for concurrent trace id propagation

* Add changelog

* update utils-lite version to match parent

* Fix again version

* Bump version

* Fix braziljson name

* Add thread safe annotation

* Adding a lazy loading of the hashmap

* Refactored code according to comments

* Modify threadLocal to InheritableThreadLocal

* Add javadoc clarification

* Add lambda check to prevent extra checks on non-lambda environments

* Update beforeExecution logic

* Fix checkstyle

* Add test coverage

* update version

* Removing non-determinstic test

* Removing unused dependencies

* update version

* Amazon Chime SDK Messaging Update: Amazon Chime SDK Messaging GetMessagingSessionEndpoint API now returns dual-stack WebSocket endpoints supporting IPv4/IPv6.

* AWS Budgets Update: Added BillingViewHealthStatus Exception which is thrown when a Budget is created or updated with a Billing View that is not in the HEALTHY status

* Amazon Bedrock Update: Release includes an increase to the maximum policy build document size, an update to DeleteAutomatedReasoningPolicyBuildWorkflow to add ResourceInUseException, and corrections to UpdateAutomatedReasoningPolicyTestCaseRequest.

* Amazon Elastic Compute Cloud Update: Allowed AMIs adds support for four new parameters - marketplaceProductCodes, deprecationTimeCondition, creationDateCondition and imageNames

* Release 2.33.13. Updated CHANGELOG.md, README.md and all pom.xml.

* Revert "Feature/master/utils lite lambda trace (#6404)" (#6431)

This reverts commit 65a5654.

* Update to next snapshot version: 2.33.14-SNAPSHOT

* Migration Tool GA Release (#6430)

* Merge TransferManager recipes to main recipe (#6392)

* Bump OpenRewrite to 3.14.0 (#6394)

* Bump OpenRewrite to 3.6.1

* Bump OpenRewrite to 3.14.0

* Remove redundant import add/remove

* Add v2 import in S3PojoToV2

* Update unit test for exceptions

* Update README and remove "-PREVIEW" from version (#6416)

* Update README

* Remove -PREVIEW from pom

* Add changelog

* Bump minor version to 2.34.0 (#6432)

* Feature/master/utils lite lambda trace again (#6433)

* Add utils-lite package (#6395)

Add utils-lite package

* Add support for concurrent trace id propagation (#6403)

Add support for concurrent trace id propagation

* Add changelog

* update utils-lite version to match parent

* Fix again version

* Bump version

* Fix braziljson name

* Add thread safe annotation

* Adding a lazy loading of the hashmap

* Refactored code according to comments

* Modify threadLocal to InheritableThreadLocal

* Add javadoc clarification

* Add lambda check to prevent extra checks on non-lambda environments

* Update beforeExecution logic

* Fix checkstyle

* Add test coverage

* update version

* Removing non-determinstic test

* Removing unused dependencies

* update version

* Add support for lambda traces via SdkInternalThreadLocal

* Bump version

* Maven Central Migration (#6375)

* adding maven central migration plugin, config and new buildspec

* Update profile config

* fix gpg plugin

* Remove redundant plugin config

* force java 8 on the codebuild

* Fix staging dir path

* Fix cloudwatch reporting

* Fix cloudwatch reporting

* Fix buildspec, add comment

---------

Co-authored-by: Ran Vaknin <rvaknin@dev-dsk-rvaknin2-2a-e69e90c1.us-west-2.amazon.com>
Co-authored-by: RanVaknin <>

* AWS Elemental MediaLive Update: Add MinBitrate for QVBR mode under H264/H265/AV1 output codec. Add GopBReference, GopNumBFrames, SubGopLength fields under H265 output codec.

* Amazon Kendra Intelligent Ranking Update: Model whitespace change - no client difference

* Amazon Bedrock Agent Core Control Plane Fronting Layer Update: Add tagging and VPC support to AgentCore Runtime, Code Interpreter, and Browser resources. Add support for configuring request headers in Runtime. Fix AgentCore Runtime shape names.

* AWS Config Update: Add UNKNOWN state to RemediationExecutionState and add IN_PROGRESS/EXITED/UNKNOWN states to RemediationExecutionStepState.

* Amazon Connect Service Update: This release adds a persistent connection field to UserPhoneConfig that maintains agent's softphone media connection for faster call connections.

* AWS License Manager User Subscriptions Update: Added support for cross-account Active Directories.

* Amazon Simple Queue Service Update: Update invalid character handling documentation for SQS SendMessage API

* Updated endpoints.json and partitions.json.

* Release 2.34.0. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.1-SNAPSHOT

* Amazon Elastic Kubernetes Service Update: Adds support for RepairConfig overrides and configurations in EKS Managed Node Groups.

* EC2 Image Builder Update: Version ARNs are no longer required for the EC2 Image Builder list-image-build-version, list-component-build-version, and list-workflow-build-version APIs. Calling these APIs without the ARN returns all build versions for the given resource type in the requesting account.

* AWS Batch Update: Starting in JAN 2026, AWS Batch will change the default AMI for new Amazon ECS compute environments from Amazon Linux 2 to Amazon Linux 2023. We recommend migrating AWS Batch Amazon ECS compute environments to Amazon Linux 2023 to maintain optimal performance and security.

* Updated endpoints.json and partitions.json.

* Release 2.34.1. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.2-SNAPSHOT

* AWS EntityResolution Update: Support incremental id mapping workflow for AWS Entity Resolution

* AWS Single Sign-On Admin Update: Add support for encryption at rest with Customer Managed KMS Key in AWS IAM Identity Center

* AWS Clean Rooms Service Update: Added support for running incremental ID mapping for rule-based workflows.

* Amazon Simple Systems Manager (SSM) Update: Added Dualstack support to GetDeployablePatchSnapshotForInstance

* Amazon Elastic Compute Cloud Update: Add Amazon EC2 R8gn instance types

* AWS SSO OIDC Update: This release includes exception definition and documentation updates.

* Updated endpoints.json and partitions.json.

* Release 2.34.2. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.3-SNAPSHOT

* Fix OpenRewrite Method Matcher Syntax (#6438)

* add missing ')' to OpenRewrite Mathod Matcher

* add missing ')' to OpenRewrite Method Matcher

---------

Co-authored-by: hdavidh <hdavidh@amazon.com>

* docs: add MBoegers as a contributor for code (#6442)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: David Ho <70000000+davidh44@users.noreply.github.com>

* Amazon AppStream Update: G6f instance support for AppStream 2.0

* Amazon DynamoDB Accelerator (DAX) Update: This release adds support for IPv6-only, DUAL_STACK DAX instances

* AWS Key Management Service Update: Documentation only updates for KMS.

* Amazon CloudWatch Update: Fix default dualstack FIPS endpoints in AWS GovCloud(US) regions

* Amazon Neptune Update: Doc-only update to address customer use.

* Release 2.34.3. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.4-SNAPSHOT

* Amazon Lightsail Update: Attribute HTTP binding update for Get/Delete operations

* AWS Glue Update: Update GetConnection(s) API to return KmsKeyArn & Add 63 missing connection types

* AWS Network Firewall Update: Network Firewall now introduces Reject and Alert action support for stateful domain list rule groups, providing customers with more granular control over their network traffic.

* Updated endpoints.json and partitions.json.

* Release 2.34.4. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.5-SNAPSHOT

* Optimizations for EnhancedDocument.toJson() (#6446)

* Fix SqsAsyncBatchManager excessive batch flushing under heavy load (#6374) (#6378)

* Synchronize replacement of scheduled flush

Co-authored-by: Cody Thornhill <thornco@amazon.com>
Co-authored-by: John Viegas <70235430+joviegas@users.noreply.github.com>

* Revert "bump jackson to 2.19.0 (#6358)"

This reverts commit 5449862.

* Amazon Connect Service Update: Adds supports for manual contact picking (WorkList) operations on Routing Profiles, Agent Management and SearchContacts APIs.

* AWS Cost Explorer Service Update: Support for payer account dimension and billing view health status.

* Data Automation for Amazon Bedrock Update: Added support for configurable Speaker Labeling and Channel Labeling features for Audio modality.

* Agents for Amazon Bedrock Runtime Update: This release enhances the information provided through Flow Traces. New information includes source/next node tracking, execution chains for complex nodes, dependency action (operation) details, and dependency traces.

* Amazon DynamoDB Streams Update: Added support for IPv6 compatible endpoints for DynamoDB Streams.

* AWS Billing Update: Add ability to combine custom billing views to create new consolidated views.

* Amazon Redshift Update: Support tagging and tag propagation to IAM Identity Center for Redshift Idc Applications

* Amazon Elastic Compute Cloud Update: This release includes documentation updates for Amazon EBS General Purpose SSD (gp3) volumes with larger size and higher IOPS and throughput.

* Updated endpoints.json and partitions.json.

* Release 2.34.5. Updated CHANGELOG.md, README.md and all pom.xml.

* AWS Cost Explorer Service Update: Support for payer account dimension and billing view health status.

* Amazon DynamoDB Streams Update: Added support for IPv6 compatible endpoints for DynamoDB Streams.

* Agents for Amazon Bedrock Runtime Update: This release enhances the information provided through Flow Traces. New information includes source/next node tracking, execution chains for complex nodes, dependency action (operation) details, and dependency traces.

* Data Automation for Amazon Bedrock Update: Added support for configurable Speaker Labeling and Channel Labeling features for Audio modality.

* Amazon Connect Service Update: Adds supports for manual contact picking (WorkList) operations on Routing Profiles, Agent Management and SearchContacts APIs.

* AWS Billing Update: Add ability to combine custom billing views to create new consolidated views.

* Amazon Redshift Update: Support tagging and tag propagation to IAM Identity Center for Redshift Idc Applications

* Amazon Elastic Compute Cloud Update: This release includes documentation updates for Amazon EBS General Purpose SSD (gp3) volumes with larger size and higher IOPS and throughput.

* Updated endpoints.json and partitions.json.

* Release 2.34.5. Updated CHANGELOG.md, README.md and all pom.xml.

* Update to next snapshot version: 2.34.6-SNAPSHOT

---------

Co-authored-by: AWS <>
Co-authored-by: aws-sdk-java-automation <43143862+aws-sdk-java-automation@users.noreply.github.com>
Co-authored-by: Ran Vaknin <50976344+RanVaknin@users.noreply.github.com>
Co-authored-by: Bole1155 <49867651+Fred1155@users.noreply.github.com>
Co-authored-by: Zoe Wang <33073555+zoewangg@users.noreply.github.com>
Co-authored-by: John Viegas <70235430+joviegas@users.noreply.github.com>
Co-authored-by: Alex Woods <alexwoo@amazon.com>
Co-authored-by: David Ho <70000000+davidh44@users.noreply.github.com>
Co-authored-by: Ran Vaknin <rvaknin@dev-dsk-rvaknin2-2a-e69e90c1.us-west-2.amazon.com>
Co-authored-by: Merlin Bögershausen <merlin.boegershausen@rwth-aachen.de>
Co-authored-by: hdavidh <hdavidh@amazon.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: thornhillcody <thornhill.cody@gmail.com>
Co-authored-by: Cody Thornhill <thornco@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants