Skip to content

Conversation

@zoewangg
Copy link
Contributor

@zoewangg zoewangg commented Feb 9, 2026

Motivation and Context

This PR adds stability tests and JMH benchmarks for the CRT HTTP client with HTTP/2 protocol support. These tests validate CRT HTTP/2 behavior under high-concurrency
scenarios using real AWS services (Kinesis and Transcribe Streaming) that support HTTP/2.

Modifications

New Stability Tests:

  • KinesisCrtH2StabilityTest - Tests Kinesis SubscribeToShard streaming with CRT HTTP/2
  • TranscribeStreamingCrtStabilityTest - Tests Transcribe Streaming bidirectional streaming with CRT HTTP/2

New JMH Benchmark:

  • AwsCrtH2ClientBenchmark - Benchmarks CRT HTTP client with HTTP/2 over TLS

Refactoring:

  • Created KinesisBaseStabilityTest to eliminate code duplication between Kinesis stability tests
  • Created TranscribeStreamingBaseStabilityTest to eliminate code duplication between Transcribe Streaming stability tests

Benchmark Results (CRT HTTP/2 vs Netty HTTP/2):

Benchmark CRT (ops/s) Netty OpenSSL (ops/s) Improvement
Concurrent 12,287 ± 433 7,156 ± 91 +72%
Sequential 3,760 ± 185 2,487 ± 54 +51%

Testing

  • Stability tests require AWS credentials and create real Kinesis streams/Transcribe sessions
  • JMH benchmarks run against local mock H2 server

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 pass
  • I have added a changelog entry (N/A - test-only changes)

@zoewangg zoewangg requested a review from a team as a code owner February 9, 2026 22:29
@zoewangg zoewangg force-pushed the zoewang/addPerfTestsStabilityTests branch from f9015f1 to 1e59327 Compare February 9, 2026 23:39
@zoewangg zoewangg force-pushed the zoewang/addPerfTestsStabilityTests branch from 1e59327 to 11cfe9c Compare February 10, 2026 00:02
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
62.1% Coverage on New Code (required ≥ 80%)
4.9% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

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.

1 participant