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]

Reply via email to