hubcio opened a new pull request, #4312: URL: https://github.com/apache/iggy/pull/4312
The crash-recovery readers for segments, indexes and consumer offsets lived in the server, although core/partitions writes every format they read. So each format detail existed in two crates, and segment_recovery carried its own copy of the index entry size. The shard reached its embedding process through four `Rc<dyn Fn>` slots in a struct of closures. A factory layer in dispatch built them, and the server and the simulator wired them by hand: a seam with no name and no contract. The readers become crate-independent. They take `&PartitionsConfig` for every path, with the consumer offset directories as getters on it, and the recovery warning reads the admission limit that the partition already enforces. They raise a hand-written `PartitionRecoveryError`, which `ServerError` wraps in one transparent variant, and they are generic over the bus. They then move beside their writers, together with the storage half of partition_helpers.rs, as renames with no body change, and the mirrored constant gives way to `IGGY_INDEX_SIZE`. The `ServerConfig` segment path helpers and their file extension constants lose their last callers and go. The shard crate gets a `ShardHost` trait and a `NoopHost`. `IggyShard` holds one `Rc<dyn ShardHost>` and wraps the two bus-facing slots into adapters once at construction. The server implements the trait as `ServerHost`, which owns what the deleted factories used to capture, and re-exports it from `boot` for the simulator. The client path gains one vtable hop per frame. Replica connections now keep the bus alive through the host's bus clone, as client connections already did. `ConnectionContext` turns `pub` because `session_manager` is crate-private now. The metadata state stops leaking its name indexes. `define_state!` takes a visibility per field, and the fields that no other crate reads turn `pub(crate)`. The login path resolves its user through a `UsersInner` method. `Streams` gains `resolve_stream_id` and `resolve_topic_ids` for the three gates that each wrapped the same lookup, and namespace.rs lists its public resolvers first. -- 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]
