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]

Reply via email to