KhrystynaPopadyuk commented on PR #1940: URL: https://github.com/apache/avro/pull/1940#issuecomment-1340081730
Hi @KalleOlaviNiemitalo , Thank you for review. The main goal of this PR is add interfaces to be able inject custom implementation (including breaking changes) and fix bugs quickly. For example: - ClassCache at this moment is used to: cache objects, parse types, instantiate objects... Serializer and deserializer do not use most of behavior. Having interface I would be able write own implementation. I would be able use IMemoryChace for caching and have separate service to parse types where I would be able fix bugs much quicker. Also I would be able to update converters part to use DI instead of add them to static list. A lot of other updates would be able to introduce without breaking/any changes to existing Apache.Avro package. Adding this interface open way to add new nuget package for .NET Core that use current Apache.Avro for main functionality but also add usage of DI, ILogger, IMemorryCache and other features that Microsoft offer for developers. - DotnetClass has only one constructor that require ClassCache as argument. But does it really need ClassCache or just converters? Also it have hard-coded login about how parse and create properties. Having/using interface I would be able have own implementation with custom login. As example use DI to get registered converters, skip properties by criteria.... - DotnetProperty probably the most obvious. There is https://github.com/apache/avro/pull/1718 that was merged 9 of August 2022 it was almost 4 months ago. And till now it is not released and there is no scheduled time for release. It is critical changes for my company. Having interface I would be able write custom implementation and deploy fix to prod in August. -- 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]
