apache / apache/iggy

[Java SDK] Add Performance Benchmarks for Java SDK

Open
#2,228 5 comments 0 reactions 0 assignees View on GitHub
java test
Dominant language
Rust
Stars
4.9k
Forks
432
Avg merge
2d 10h
Merged PRs (30d)
174

Description

### Title
Implement JMH performance benchmarks for blocking and async clients

### Description
The Java SDK lacks performance benchmarks to measure throughput, latency, and resource usage. We need standardized benchmarks to track performance over time and compare different client implementations.

### Tasks
- [ ] Set up JMH (Java Microbenchmark Harness) in the project
- [ ] Create benchmarks for message operations:
- [ ] Single message send latency
- [ ] Batch message send throughput
- [ ] Message polling throughput
- [ ] End-to-end latency (send + poll)
- [ ] Create benchmarks for management operations:
- [ ] Stream/topic creation
- [ ] Consumer group operations
- [ ] Compare performance:
- [ ] Blocking vs Async clients
- [ ] TCP vs HTTP transports
- [ ] Different message sizes (1KB, 10KB, 100KB, 1MB)
- [ ] Different batch sizes (1, 10, 100, 1000 messages)
- [ ] Add performance regression detection to CI

### Labels
`enhancement`, `performance`, `testing`, `java-sdk`

Contributor guide

Open the contributing guide

Research direction

Start by locating the Java SDK's blocking and async clients, the TCP and HTTP transports, and the CI configuration before evaluating the JMH setup. Done means benchmarks cover the listed message and management operations, comparisons, message and batch sizes, and performance regression detection in CI.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.