Hi, Please check my views on it.
Basic design should be there is a clear separation between modules. Like Spark based configurations are no means to presto, So every module can have there owned conf and constant classes. 1. No need for CarbonProperties and CarbonCommonConstants. 2. Should have CarbonStaticConf and CarbonRuntimeConf classes to differentiate between static and runtime configurations. 3. Don't add description as string to it as it consumes lot of memory, adding as comment should be enough. 4. Create CarbonCoreConstants for keeping all core level constants to it. 5. Every integration layer should have its own constants classes like Spark, presto and Hive. 6. Even configurations also should be different for each integration layer. That means spark should have CarbonSparkConf which can extends or wrap CarbonStaticConf. And same for presto and hive as well. -- Sent from: http://apache-carbondata-dev-mailing-list-archive.1130556.n5.nabble.com/