`core/server-ng` imports several utilities from `core/server`, the legacy binary it is meant to replace. This creates a compile-time dependency that prevents server-ng from ever building independently.
The imports fall into five clusters across `main.rs`, `bootstrap.rs`, and `server_error.rs`:
| File |
Import |
| `main.rs` |
`server::bootstrap::create_shard_executor` |
| `main.rs` |
`server::diagnostics::print_*_info` (3 fns) |
| `main.rs` |
`server::log::logger::Logging` |
| `bootstrap.rs` |
`server::bootstrap::create_directories` |
| `bootstrap.rs` |
`server::log::logger::Logging` |
| `bootstrap.rs` |
`server::streaming::partitions::storage::{load_consumer_group_offsets, load_consumer_offsets}` |
| `bootstrap.rs` |
`server::streaming::segments::storage::create_segment_storage` |
| `bootstrap.rs` |
`server::bootstrap::load_segments` |
| `server_error.rs` |
`server::server_error::LogError` |
Each cluster is independently removable with no behaviour change. The storage and partition log clusters depend on #3298 landing first, since that PR moves the relevant types out of `core/server`.
`core/server-ng` imports several utilities from `core/server`, the legacy binary it is meant to replace. This creates a compile-time dependency that prevents server-ng from ever building independently.
The imports fall into five clusters across `main.rs`, `bootstrap.rs`, and `server_error.rs`:
Each cluster is independently removable with no behaviour change. The storage and partition log clusters depend on #3298 landing first, since that PR moves the relevant types out of `core/server`.