diff --git a/sentinel-cluster/sentinel-cluster-common-default/pom.xml b/sentinel-cluster/sentinel-cluster-common-default/pom.xml
index d3f14e08..970432e6 100644
--- a/sentinel-cluster/sentinel-cluster-common-default/pom.xml
+++ b/sentinel-cluster/sentinel-cluster-common-default/pom.xml
@@ -13,7 +13,10 @@
jar
-
+
+ com.alibaba.csp
+ sentinel-core
+
\ No newline at end of file
diff --git a/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/annotation/RequestType.java b/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/annotation/RequestType.java
new file mode 100644
index 00000000..74224b84
--- /dev/null
+++ b/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/annotation/RequestType.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.cluster.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Request type annotation for handlers, codes, etc.
+ *
+ * @author Eric Zhao
+ * @since 1.4.0
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+@Documented
+public @interface RequestType {
+
+ /**
+ * Type of the request to handle.
+ *
+ * @return type of the request
+ */
+ int value();
+}
diff --git a/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/registry/ConfigSupplierRegistry.java b/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/registry/ConfigSupplierRegistry.java
new file mode 100644
index 00000000..63107d52
--- /dev/null
+++ b/sentinel-cluster/sentinel-cluster-common-default/src/main/java/com/alibaba/csp/sentinel/cluster/registry/ConfigSupplierRegistry.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.alibaba.csp.sentinel.cluster.registry;
+
+import com.alibaba.csp.sentinel.log.RecordLog;
+import com.alibaba.csp.sentinel.util.AppNameUtil;
+import com.alibaba.csp.sentinel.util.AssertUtil;
+import com.alibaba.csp.sentinel.util.function.Supplier;
+
+/**
+ * @author Eric Zhao
+ * @since 1.4.0
+ */
+public final class ConfigSupplierRegistry {
+
+ /**
+ * The default namespace supplier provides appName as namespace.
+ */
+ private static final Supplier DEFAULT_APP_NAME_SUPPLIER = new Supplier() {
+ @Override
+ public String get() {
+ return AppNameUtil.getAppName();
+ }
+ };
+ /**
+ * Registered namespace supplier.
+ */
+ private static Supplier namespaceSupplier = DEFAULT_APP_NAME_SUPPLIER;
+
+ /**
+ * Get the registered namespace supplier.
+ *
+ * @return the registered namespace supplier
+ */
+ public static Supplier getNamespaceSupplier() {
+ return namespaceSupplier;
+ }
+
+ public static void setNamespaceSupplier(Supplier namespaceSupplier) {
+ AssertUtil.notNull(namespaceSupplier, "namespaceSupplier cannot be null");
+ ConfigSupplierRegistry.namespaceSupplier = namespaceSupplier;
+ RecordLog.info("[ConfigSupplierRegistry] New namespace supplier provided, current supplied: "
+ + namespaceSupplier.get());
+ }
+
+ private ConfigSupplierRegistry() {}
+}