- no need to different config flags (`mongoConfig`, redisConfig`...). Use just `--config` - naming should be consistent to avoid redundancy since it is already namescoped - e.g. change `gcs.GCSProducer` in `gcs.Producer` - move `Producer` interface in the `producer` package for consistency and isolation - define a factory for producer instead of different `createXXX` methods - change `emitter.Emitter.Initialize` sequence of `if` using factory with a producer factory map - e.g. `producerFactory["mongodb"].createProducer()`
mongoConfig, redisConfig...). Use just--config`gcs.GCSProduceringcs.ProducerProducerinterface in theproducerpackage for consistency and isolationcreateXXXmethodsemitter.Emitter.Initializesequence ofifusing factory with a producer factory mapproducerFactory["mongodb"].createProducer()