hubcio opened a new pull request, #4089: URL: https://github.com/apache/iggy/pull/4089
responses.rs mixed three concerns in 2459 lines: identifier and namespace resolution, reply frame building, and the process probe behind GetStats. Around it the read side carried two more forks: private server copies of the metadata crate's stream and topic resolvers, and five hand-written ReplyHeader echo literals plus a sixth writing the rejection result section against a private 12-byte constant. Any change to an echo or a resolver had to be repeated at every copy. Split responses.rs into leaf modules by role: namespace.rs resolves wire identifiers and partition namespaces and owns the consumer-group offset fence, reply_frame.rs owns the seven frame builders, and sysinfo_probe.rs owns that probe. The catalog keeps NonReplicatedResponse and imports the three one way, keeping the module graph a DAG. Export StreamsInner::resolve_stream_id and resolve_topic_id beside the sibling UsersInner::resolve_user_id, and delete the server copies, so the in-apply, dispatch read and HTTP read gates end on one resolution. Give ReplyHeader two constructors: from_prepare reproduces the committed-reply literal, echoing is the base the request-echo sites consume with `..`. echoing leaves client zero on purpose: dispatch stamps the transport id, the rest the VSR id, so no base can pick one. The rejection section moves beside its decoder as write_rejection_section. The NoAck fast path keeps its literal: it stamps live consensus fields, not the echo. Frames match byte for byte before and after. The dispatch failure exits trade byte snapshots, which pinned the previous refactor rather than the wire contract, for one shape test per exit. -- 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]
