@dlobue I know this is a bit controversial design. I will try to explain and let me know what you guys think:

I was imagining a reusable `KafkaService` class. While using an instance of this class, all the producers are tightly coupled to the configuration with which we have loaded the class and also to the custom serialization it uses(for e.g RollupEventSerializer). Now what if we want to use the `KafkaService` for some other application, by supplying a different custom serializer class? We will have to do some hard-coding programmatically right? Instead, what this will provide us, is that we can supply multiple number of classes (that we want to load) followed (and delimited by `:`) by the config which we want to use and they will get loaded when we start the external modules.