PROBLEM:
Consumer test (make consumer-test) shows Sarama being heavily throttled:
- Every Fetch response includes throttle_time = 100-112ms
- Sarama interprets this as 'broker is throttling me'
- Client backs off aggressively
- Consumer throughput drops to nearly zero
ROOT CAUSE:
In the long-poll logic, when MaxWaitTime is reached with no data available,
the code sets throttleTimeMs = elapsed_time. If MaxWaitTime=100ms, the client
gets throttleTime=100ms in response, which it interprets as rate limiting.
This is WRONG: Kafka's throttle_time is for quota/rate-limiting enforcement,
NOT for reflecting long-poll duration. Clients use it to back off when
broker is overloaded.
FIX:
- When long-poll times out with no data, set throttleTimeMs = 0
- Only use throttle_time for actual quota enforcement
- Long-poll duration is expected and should NOT trigger client backoff
BEFORE:
- Sarama throttled 100-112ms per fetch
- Consumer throughput near zero
- Test times out (never completes)
AFTER:
- No throttle signals
- Consumer can fetch continuously
- Test completes normally