vax-r opened a new issue, #1873: URL: https://github.com/apache/iggy/issues/1873
## Description Currently, the type of `client` field within `IggyClient` is of type `IggySharedMut<Box<dyn Client>>`, where `dyn Client` is dynamically dispatched. It can be change to `IggySharedMut<T> where T: Client` so that static dispatch is utilized here. Execution time performance is expected to get benefit from it, while we need to concern the code bloat after compilation, if certain concrete type of `T` is large, it might make the executable too much larger than before. ## Expected Changes The usage of `IggyClient` is project-wide, at least very common in SDK. A thorough research about the relationship between structs within SDK that use `IggyClient` and anything that relates to it is done. The following part lists out the structs/method that will be change due to this refactor: * `IggyClient` * `IggyConsumer` * `IggyConsumerBuilder` * `IggyProducer` * `IggyProducerBuilder` * `ClientFactory::create_client()` * `ClientProviderConfig::get_raw_connected_client()` * `ClientProviderConfig::get_raw_client()` * `IggyCmdTest::new()` * `IggyExampleTest` The parts where use `IggyClient` API shouldn't be changed, the usage of API such e.g. `send()`, should remain the same after the change. ## Expected Result Switch the `client` field of `IggyClient` entirely from dynamic dispatch to static dispatch. Some performance tests are needed to justify the benefit of this change. ## Note The change can be project-wide and collide with some on-going work, please let me know if anything is changed against `IggyClient` or other structs/method mentioned above. I'll be happy to adjust on my side -- 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]
