krishvishal opened a new pull request, #4228: URL: https://github.com/apache/iggy/pull/4228
The request path is now async, because it has to be. JoinGroup holds its answer until a rebalance finishes, and Fetch waits for data to arrive. `handle_request_bounded` takes a `GatewayState` that carries the broker details, the frame size limit, and an optional bridge. The old entry point keeps its argument shape and builds a state with no bridge. That held the test change to mechanical edits: 68 call sites gained `.await`, and 64 tests became async. Each API key now owns a file under `protocol/handlers/`. A module holds its version range, its response encoders, and its handler. Adding an API costs one new file and three lines: one in the dispatch match, one in `SUPPORTED_RANGES`, one in the test scope list. `responses.rs` is gone, because all eight of its public functions belonged to a single API each. `IggyBridge` was one file of 529 lines. It is now split by job under `iggy_bridge/`: topics, offsets, and two empty files waiting for Produce and Fetch. They are submodules rather than siblings. The struct keeps its fields private, and a child module reads them while a sibling cannot. `main` connects the bridge when `IGGY_KAFKA_BRIDGE_ENABLED` is true. It is false by default, so every API keeps its stub answer. Nothing changes for an operator who has not asked for the bridge. A failed connection stops the process instead of falling back to stubs. The harness that starts a real `iggy-server` moved to `tests/common/iggy_server.rs`, so the Produce, Fetch and offset suites reuse it instead of copying it. Those tests now run four at a time instead of one, which matches the core width each spawned server gets. The comment above that setting said nothing capped the shard pool. That stopped being true when #4043 landed, so it is rewritten. One behavior change is worth naming. On a box whose ephemeral port range starts at or below 10000, the port picker used to hand out a port from a band it shares with `core/integration` under a different lock file. It now refuses and prints the sysctl command to narrow the range. A clash there is -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
