Repository: knative-sandbox/eventing-kafka-broker
Pull request #78 (2020-08-04 12:51:55)

Decouple request path from data plane components
Instead of building the request path from the Broker's namespace
and name, the control plane directly decides at which path the
ingress should listen to new events. In this way the request
path isn't part of a protocol between the control plane and the data
plane, but instead it's managed only by the control plane.

Signed-off-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

## Proposed Changes

- Replace namespace and name from the broker configuration with a path.


knative-prow-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/78#" title="Author self-approved">pierDipi</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **evankanderson**
You can assign the PR to them by writing `/assign @evankanderson` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative-sandbox%2Feventing-kafka-broker).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/knative-sandbox/eventing-kafka-broker/blob/master/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["evankanderson"]} -->
knative-metrics-robot: The following is the coverage report on the affected files.
Say `/test pull-knative-sandbox-eventing-kafka-broker-go-coverage` to re-run this coverage report

File | Old Coverage | New Coverage | Delta
---- |:------------:|:------------:|:-----:
[control-plane/pkg/reconciler/broker/broker.go](https://storage.cloud.google.com/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/78/pull-knative-sandbox-eventing-kafka-broker-go-coverage/1290631781812277248/artifacts/line-cov.html#file0) | 91.1% | 91.2% | 0.1

knative-prow-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/78#" title="Author self-approved">pierDipi</a>*, *<a href="https://github.com/knative-sandbox/eventing-kafka-broker/pull/78#issuecomment-668605342" title="Approved">slinkydeveloper</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative-sandbox%2Feventing-kafka-broker).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/knative-sandbox/eventing-kafka-broker/blob/master/OWNERS)~~ [slinkydeveloper]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->

Patch:
diff --git a/control-plane/pkg/core/config/triggers.pb.go b/control-plane/pkg/core/config/triggers.pb.go
index 1181af92a..0807eb1e5 100644
--- a/control-plane/pkg/core/config/triggers.pb.go
+++ b/control-plane/pkg/core/config/triggers.pb.go
@@ -91,12 +91,10 @@ type Broker struct {
 	DeadLetterSink string `protobuf:"bytes,3,opt,name=deadLetterSink,proto3" json:"deadLetterSink,omitempty"`
 	// triggers associated with the broker
 	Triggers []*Trigger `protobuf:"bytes,4,rep,name=triggers,proto3" json:"triggers,omitempty"`
-	// broker namespace
-	Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"`
-	// broker name
-	Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
+	// path to listen for incoming events.
+	Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
 	// A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
-	BootstrapServers     string   `protobuf:"bytes,7,opt,name=bootstrapServers,proto3" json:"bootstrapServers,omitempty"`
+	BootstrapServers     string   `protobuf:"bytes,6,opt,name=bootstrapServers,proto3" json:"bootstrapServers,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -155,16 +153,9 @@ func (m *Broker) GetTriggers() []*Trigger {
 	return nil
 }
 
-func (m *Broker) GetNamespace() string {
+func (m *Broker) GetPath() string {
 	if m != nil {
-		return m.Namespace
-	}
-	return ""
-}
-
-func (m *Broker) GetName() string {
-	if m != nil {
-		return m.Name
+		return m.Path
 	}
 	return ""
 }
@@ -235,29 +226,28 @@ func init() {
 func init() { proto.RegisterFile("proto/def/triggers.proto", fileDescriptor_3cd32e421bcc2dd3) }
 
 var fileDescriptor_3cd32e421bcc2dd3 = []byte{
-	// 377 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0xcf, 0x6a, 0xe3, 0x30,
-	0x10, 0xc6, 0xb1, 0xf3, 0xc7, 0xc9, 0x84, 0xcd, 0x06, 0xb1, 0x07, 0xb1, 0xec, 0x42, 0x36, 0x2c,
-	0x25, 0x14, 0x22, 0x43, 0x7b, 0x09, 0x85, 0x1e, 0x9a, 0x52, 0x7a, 0xe9, 0xc9, 0xe9, 0xa1, 0x14,
-	0x7a, 0x90, 0xed, 0x89, 0x11, 0x76, 0x24, 0x23, 0x2b, 0x86, 0xbc, 0x57, 0x9f, 0xa6, 0x4f, 0x53,
-	0x2c, 0xdb, 0x49, 0x48, 0x6e, 0x33, 0xdf, 0xf7, 0xe9, 0xc7, 0x78, 0xc6, 0x40, 0x73, 0xad, 0x8c,
-	0xf2, 0x63, 0xdc, 0xf8, 0x46, 0x8b, 0x24, 0x41, 0x5d, 0x30, 0x2b, 0xcd, 0x3e, 0x1d, 0xf0, 0x5e,
-	0x6b, 0x89, 0x2c, 0x01, 0xb8, 0x31, 0x5a, 0x84, 0x3b, 0x83, 0x05, 0x75, 0xa6, 0x9d, 0xf9, 0xe8,
-	0x86, 0xb2, 0xc6, 0x65, 0x0f, 0x07, 0xeb, 0x49, 0x1a, 0xbd, 0x0f, 0x4e, 0xb2, 0x64, 0x0a, 0xa3,
-	0x18, 0x0b, 0x23, 0x24, 0x37, 0x42, 0x49, 0xea, 0x4e, 0x9d, 0xf9, 0x30, 0x38, 0x95, 0xc8, 0x18,
-	0x5c, 0x11, 0xd3, 0x8e, 0x35, 0x5c, 0x11, 0xff, 0xbe, 0x87, 0x9f, 0x67, 0x40, 0x32, 0x81, 0x4e,
-	0x8a, 0x7b, 0xea, 0xd8, 0x4c, 0x55, 0x92, 0x5f, 0xd0, 0x2b, 0x79, 0xb6, 0xc3, 0x06, 0x58, 0x37,
-	0x77, 0xee, 0xd2, 0x99, 0x7d, 0x39, 0xd0, 0x5f, 0x69, 0x95, 0xa2, 0x6e, 0xc8, 0x4e, 0x4b, 0xae,
-	0x1e, 0x19, 0x95, 0x8b, 0xa8, 0x7d, 0x64, 0x1b, 0x72, 0x05, 0xe3, 0x18, 0x79, 0xfc, 0x82, 0xc6,
-	0xa0, 0x5e, 0x0b, 0x99, 0x36, 0xb3, 0x9c, 0xa9, 0xe4, 0x3f, 0x0c, 0xda, 0x0d, 0xd1, 0xae, 0xdd,
-	0xc0, 0xa0, 0xdd, 0x40, 0x70, 0x70, 0xc8, 0x1f, 0x18, 0x4a, 0xbe, 0xc5, 0x22, 0xe7, 0x11, 0xd2,
-	0x9e, 0x05, 0x1d, 0x05, 0x42, 0xa0, 0x5b, 0x35, 0xb4, 0x6f, 0x0d, 0x5b, 0x93, 0x6b, 0x98, 0x84,
-	0x4a, 0x99, 0xc2, 0x68, 0x9e, 0xaf, 0x51, 0x97, 0x15, 0xdf, 0xb3, 0xfe, 0x85, 0x3e, 0x7b, 0x03,
-	0xaf, 0xfe, 0xb6, 0x82, 0xfc, 0x03, 0x2f, 0xac, 0xcb, 0xe6, 0x1e, 0x1e, 0xab, 0xad, 0xa0, 0xd5,
-	0x2b, 0x72, 0xa9, 0xb2, 0xdd, 0x16, 0x9f, 0x51, 0xa2, 0x3e, 0x1e, 0xa0, 0x1b, 0x5c, 0xe8, 0xab,
-	0x0f, 0x58, 0xc4, 0x58, 0xb2, 0xb4, 0x3a, 0x4a, 0x89, 0x0c, 0x4b, 0x94, 0x46, 0xc8, 0x84, 0xa5,
-	0x7c, 0x93, 0x72, 0x56, 0x13, 0x59, 0xa4, 0x34, 0xb2, 0x48, 0xc9, 0x8d, 0x48, 0x56, 0x3f, 0x9a,
-	0x41, 0x1e, 0x6d, 0xfb, 0xfe, 0x37, 0x52, 0xd2, 0x68, 0x95, 0x2d, 0xf2, 0x8c, 0x4b, 0xf4, 0xf3,
-	0x34, 0xf1, 0xab, 0xb4, 0x5f, 0xa7, 0xc3, 0xbe, 0xfd, 0xa7, 0x6e, 0xbf, 0x03, 0x00, 0x00, 0xff,
-	0xff, 0x80, 0x14, 0x6d, 0x63, 0x6f, 0x02, 0x00, 0x00,
+	// 363 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0x4f, 0x6b, 0xdb, 0x40,
+	0x10, 0xc5, 0x91, 0xfc, 0x47, 0xee, 0x98, 0xba, 0x66, 0xe9, 0x61, 0x29, 0x14, 0x5c, 0x53, 0x8a,
+	0x29, 0x78, 0x05, 0xed, 0xc5, 0x14, 0x7a, 0xa8, 0x4b, 0xe9, 0x25, 0x27, 0x39, 0x87, 0x10, 0xc8,
+	0x61, 0x25, 0x8d, 0x95, 0x45, 0xca, 0xae, 0x58, 0x8d, 0x05, 0xfe, 0x5e, 0x39, 0xe6, 0xc3, 0x05,
+	0xad, 0x24, 0xc7, 0xd8, 0xb7, 0x99, 0xf7, 0xde, 0xfe, 0x18, 0x1e, 0x0b, 0xbc, 0xb4, 0x86, 0x4c,
+	0x98, 0xe2, 0x3e, 0x24, 0xab, 0xb2, 0x0c, 0x6d, 0x25, 0x9c, 0xb4, 0x7c, 0xf6, 0x20, 0xb8, 0x6d,
+	0x25, 0xb6, 0x01, 0x90, 0x44, 0x56, 0xc5, 0x07, 0xc2, 0x8a, 0x7b, 0x8b, 0xc1, 0x6a, 0xfa, 0x83,
+	0x8b, 0xce, 0x15, 0x7f, 0x4e, 0xd6, 0x3f, 0x4d, 0xf6, 0x18, 0x9d, 0x65, 0xd9, 0x02, 0xa6, 0x29,
+	0x56, 0xa4, 0xb4, 0x24, 0x65, 0x34, 0xf7, 0x17, 0xde, 0xea, 0x5d, 0x74, 0x2e, 0xb1, 0x19, 0xf8,
+	0x2a, 0xe5, 0x03, 0x67, 0xf8, 0x2a, 0xfd, 0xf4, 0x1b, 0x3e, 0x5c, 0x00, 0xd9, 0x1c, 0x06, 0x39,
+	0x1e, 0xb9, 0xe7, 0x32, 0xcd, 0xc8, 0x3e, 0xc2, 0xa8, 0x96, 0xc5, 0x01, 0x3b, 0x60, 0xbb, 0xfc,
+	0xf2, 0x37, 0xde, 0xf2, 0xc5, 0x83, 0xf1, 0xd6, 0x9a, 0x1c, 0x6d, 0x47, 0xf6, 0x7a, 0x72, 0xf3,
+	0x88, 0x4c, 0xa9, 0x92, 0xfe, 0x91, 0x5b, 0xd8, 0x37, 0x98, 0xa5, 0x28, 0xd3, 0x1b, 0x24, 0x42,
+	0xbb, 0x53, 0x3a, 0xef, 0x6e, 0xb9, 0x50, 0xd9, 0x57, 0x98, 0xf4, 0x0d, 0xf1, 0xa1, 0x6b, 0x60,
+	0xd2, 0x37, 0x10, 0x9d, 0x1c, 0xc6, 0x60, 0x58, 0x4a, 0x7a, 0xe4, 0x23, 0xc7, 0x70, 0x33, 0xfb,
+	0x0e, 0xf3, 0xd8, 0x18, 0xaa, 0xc8, 0xca, 0x72, 0x87, 0xb6, 0x6e, 0x08, 0x63, 0xe7, 0x5f, 0xe9,
+	0xcb, 0x3b, 0x08, 0xda, 0xeb, 0x2b, 0xf6, 0x05, 0x82, 0xb8, 0x1d, 0xbb, 0xc6, 0x03, 0xd1, 0x5a,
+	0x51, 0xaf, 0x37, 0xe4, 0xda, 0x14, 0x87, 0x27, 0xfc, 0x8f, 0x1a, 0xed, 0x5b, 0xc5, 0xc3, 0xe8,
+	0x4a, 0xdf, 0x3e, 0xc0, 0x3a, 0xc5, 0x5a, 0xe4, 0x4d, 0xed, 0x35, 0x0a, 0xac, 0x51, 0x93, 0xd2,
+	0x99, 0xc8, 0xe5, 0x3e, 0x97, 0xa2, 0x25, 0x8a, 0xc4, 0x58, 0x14, 0x89, 0xd1, 0x7b, 0x95, 0x6d,
+	0xdf, 0x77, 0x87, 0xfc, 0x75, 0xeb, 0xfd, 0xe7, 0xc4, 0x68, 0xb2, 0xa6, 0x58, 0x97, 0x85, 0xd4,
+	0x18, 0x96, 0x79, 0x16, 0x36, 0xe9, 0xb0, 0x4d, 0xc7, 0x63, 0xf7, 0x6b, 0x7e, 0xbe, 0x06, 0x00,
+	0x00, 0xff, 0xff, 0x70, 0x2e, 0x75, 0x08, 0x51, 0x02, 0x00, 0x00,
 }
diff --git a/control-plane/pkg/reconciler/broker/broker.go b/control-plane/pkg/reconciler/broker/broker.go
index b479a6f9c..a78c17eb9 100644
--- a/control-plane/pkg/reconciler/broker/broker.go
+++ b/control-plane/pkg/reconciler/broker/broker.go
@@ -254,8 +254,7 @@ func (r *Reconciler) getBrokerConfig(topic string, broker *eventing.Broker) (*co
 	brokerConfig := &coreconfig.Broker{
 		Id:               string(broker.UID),
 		Topic:            topic,
-		Namespace:        broker.Namespace,
-		Name:             broker.Name,
+		Path:             Path(broker.Namespace, broker.Name),
 		BootstrapServers: bootstrapServers,
 	}
 
@@ -372,3 +371,7 @@ func (r *Reconciler) getBootstrapServersOrFail() (string, error) {
 
 	return strings.Join(r.bootstrapServers, ","), nil
 }
+
+func Path(namespace, name string) string {
+	return fmt.Sprintf("/%s/%s", namespace, name)
+}
diff --git a/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/Broker.java b/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/Broker.java
index 9128ae23d..f89b1bbd5 100644
--- a/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/Broker.java
+++ b/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/Broker.java
@@ -49,20 +49,6 @@ public interface Broker {
    */
   String deadLetterSink();
 
-  /**
-   * Get broker namespace.
-   *
-   * @return namespace.
-   */
-  String namespace();
-
-  /**
-   * Get broker name.
-   *
-   * @return name.
-   */
-  String name();
-
   /**
    * A comma separated list of host/port pairs to use for establishing the initial connection to the
    * Kafka cluster.
diff --git a/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/BrokerWrapper.java b/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/BrokerWrapper.java
index 3346b097e..926882fec 100644
--- a/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/BrokerWrapper.java
+++ b/data-plane/core/src/main/java/dev/knative/eventing/kafka/broker/core/BrokerWrapper.java
@@ -52,16 +52,6 @@ public class BrokerWrapper implements dev.knative.eventing.kafka.broker.core.Bro
     return broker.getDeadLetterSink();
   }
 
-  @Override
-  public String namespace() {
-    return broker.getNamespace();
-  }
-
-  @Override
-  public String name() {
-    return broker.getName();
-  }
-
   @Override
   public String bootstrapServers() {
     return broker.getBootstrapServers();
@@ -69,7 +59,7 @@ public class BrokerWrapper implements dev.knative.eventing.kafka.broker.core.Bro
 
   @Override
   public String path() {
-    return "/" + namespace() + "/" + name();
+    return broker.getPath();
   }
 
   @Override
@@ -85,10 +75,8 @@ public class BrokerWrapper implements dev.knative.eventing.kafka.broker.core.Bro
     return broker.getId().equals(that.id())
         && broker.getDeadLetterSink().equals(that.deadLetterSink())
         && broker.getTopic().equals(that.topic())
-        && broker.getName().equals(that.name())
-        && broker.getNamespace().equals(that.namespace())
         && broker.getBootstrapServers().equals(that.bootstrapServers())
-        && path().equals(that.path());
+        && broker.getPath().equals(that.path());
   }
 
   @Override
@@ -97,8 +85,6 @@ public class BrokerWrapper implements dev.knative.eventing.kafka.broker.core.Bro
         broker.getId(),
         broker.getDeadLetterSink(),
         broker.getTopic(),
-        broker.getNamespace(),
-        broker.getName(),
         broker.getBootstrapServers(),
         path()
     );
diff --git a/data-plane/generated/src/main/java/dev/knative/eventing/kafka/broker/core/config/BrokersConfig.java b/data-plane/generated/src/main/java/dev/knative/eventing/kafka/broker/core/config/BrokersConfig.java
index 119ccb43f..98ec8238e 100644
--- a/data-plane/generated/src/main/java/dev/knative/eventing/kafka/broker/core/config/BrokersConfig.java
+++ b/data-plane/generated/src/main/java/dev/knative/eventing/kafka/broker/core/config/BrokersConfig.java
@@ -1312,46 +1312,28 @@ public final class BrokersConfig {
 
     /**
      * <pre>
-     * broker namespace
+     * path to listen for incoming events.
      * </pre>
      *
-     * <code>string namespace = 5;</code>
+     * <code>string path = 5;</code>
      */
-    java.lang.String getNamespace();
+    java.lang.String getPath();
     /**
      * <pre>
-     * broker namespace
+     * path to listen for incoming events.
      * </pre>
      *
-     * <code>string namespace = 5;</code>
+     * <code>string path = 5;</code>
      */
     com.google.protobuf.ByteString
-        getNamespaceBytes();
-
-    /**
-     * <pre>
-     * broker name
-     * </pre>
-     *
-     * <code>string name = 6;</code>
-     */
-    java.lang.String getName();
-    /**
-     * <pre>
-     * broker name
-     * </pre>
-     *
-     * <code>string name = 6;</code>
-     */
-    com.google.protobuf.ByteString
-        getNameBytes();
+        getPathBytes();
 
     /**
      * <pre>
      * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
      * </pre>
      *
-     * <code>string bootstrapServers = 7;</code>
+     * <code>string bootstrapServers = 6;</code>
      */
     java.lang.String getBootstrapServers();
     /**
@@ -1359,7 +1341,7 @@ public final class BrokersConfig {
      * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
      * </pre>
      *
-     * <code>string bootstrapServers = 7;</code>
+     * <code>string bootstrapServers = 6;</code>
      */
     com.google.protobuf.ByteString
         getBootstrapServersBytes();
@@ -1381,8 +1363,7 @@ public final class BrokersConfig {
       topic_ = "";
       deadLetterSink_ = "";
       triggers_ = java.util.Collections.emptyList();
-      namespace_ = "";
-      name_ = "";
+      path_ = "";
       bootstrapServers_ = "";
     }
 
@@ -1447,18 +1428,12 @@ public final class BrokersConfig {
             case 42: {
               java.lang.String s = input.readStringRequireUtf8();
 
-              namespace_ = s;
+              path_ = s;
               break;
             }
             case 50: {
               java.lang.String s = input.readStringRequireUtf8();
 
-              name_ = s;
-              break;
-            }
-            case 58: {
-              java.lang.String s = input.readStringRequireUtf8();
-
               bootstrapServers_ = s;
               break;
             }
@@ -1670,98 +1645,56 @@ public final class BrokersConfig {
       return triggers_.get(index);
     }
 
-    public static final int NAMESPACE_FIELD_NUMBER = 5;
-    private volatile java.lang.Object namespace_;
+    public static final int PATH_FIELD_NUMBER = 5;
+    private volatile java.lang.Object path_;
     /**
      * <pre>
-     * broker namespace
+     * path to listen for incoming events.
      * </pre>
      *
-     * <code>string namespace = 5;</code>
+     * <code>string path = 5;</code>
      */
-    public java.lang.String getNamespace() {
-      java.lang.Object ref = namespace_;
+    public java.lang.String getPath() {
+      java.lang.Object ref = path_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        namespace_ = s;
+        path_ = s;
         return s;
       }
     }
     /**
      * <pre>
-     * broker namespace
+     * path to listen for incoming events.
      * </pre>
      *
-     * <code>string namespace = 5;</code>
+     * <code>string path = 5;</code>
      */
     public com.google.protobuf.ByteString
-        getNamespaceBytes() {
-      java.lang.Object ref = namespace_;
+        getPathBytes() {
+      java.lang.Object ref = path_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        namespace_ = b;
+        path_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int NAME_FIELD_NUMBER = 6;
-    private volatile java.lang.Object name_;
-    /**
-     * <pre>
-     * broker name
-     * </pre>
-     *
-     * <code>string name = 6;</code>
-     */
-    public java.lang.String getName() {
-      java.lang.Object ref = name_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        name_ = s;
-        return s;
-      }
-    }
-    /**
-     * <pre>
-     * broker name
-     * </pre>
-     *
-     * <code>string name = 6;</code>
-     */
-    public com.google.protobuf.ByteString
-        getNameBytes() {
-      java.lang.Object ref = name_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        name_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-
-    public static final int BOOTSTRAPSERVERS_FIELD_NUMBER = 7;
+    public static final int BOOTSTRAPSERVERS_FIELD_NUMBER = 6;
     private volatile java.lang.Object bootstrapServers_;
     /**
      * <pre>
      * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
      * </pre>
      *
-     * <code>string bootstrapServers = 7;</code>
+     * <code>string bootstrapServers = 6;</code>
      */
     public java.lang.String getBootstrapServers() {
       java.lang.Object ref = bootstrapServers_;
@@ -1780,7 +1713,7 @@ public final class BrokersConfig {
      * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
      * </pre>
      *
-     * <code>string bootstrapServers = 7;</code>
+     * <code>string bootstrapServers = 6;</code>
      */
     public com.google.protobuf.ByteString
         getBootstrapServersBytes() {
@@ -1822,14 +1755,11 @@ public final class BrokersConfig {
       for (int i = 0; i < triggers_.size(); i++) {
         output.writeMessage(4, triggers_.get(i));
       }
-      if (!getNamespaceBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, namespace_);
-      }
-      if (!getNameBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, name_);
+      if (!getPathBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, path_);
       }
       if (!getBootstrapServersBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, bootstrapServers_);
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, bootstrapServers_);
       }
       unknownFields.writeTo(output);
     }
@@ -1853,14 +1783,11 @@ public final class BrokersConfig {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, triggers_.get(i));
       }
-      if (!getNamespaceBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, namespace_);
-      }
-      if (!getNameBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, name_);
+      if (!getPathBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, path_);
       }
       if (!getBootstrapServersBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, bootstrapServers_);
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, bootstrapServers_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -1885,10 +1812,8 @@ public final class BrokersConfig {
           .equals(other.getDeadLetterSink())) return false;
       if (!getTriggersList()
           .equals(other.getTriggersList())) return false;
-      if (!getNamespace()
-          .equals(other.getNamespace())) return false;
-      if (!getName()
-          .equals(other.getName())) return false;
+      if (!getPath()
+          .equals(other.getPath())) return false;
       if (!getBootstrapServers()
           .equals(other.getBootstrapServers())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -1912,10 +1837,8 @@ public final class BrokersConfig {
         hash = (37 * hash) + TRIGGERS_FIELD_NUMBER;
         hash = (53 * hash) + getTriggersList().hashCode();
       }
-      hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
-      hash = (53 * hash) + getNamespace().hashCode();
-      hash = (37 * hash) + NAME_FIELD_NUMBER;
-      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + PATH_FIELD_NUMBER;
+      hash = (53 * hash) + getPath().hashCode();
       hash = (37 * hash) + BOOTSTRAPSERVERS_FIELD_NUMBER;
       hash = (53 * hash) + getBootstrapServers().hashCode();
       hash = (29 * hash) + unknownFields.hashCode();
@@ -2064,9 +1987,7 @@ public final class BrokersConfig {
         } else {
           triggersBuilder_.clear();
         }
-        namespace_ = "";
-
-        name_ = "";
+        path_ = "";
 
         bootstrapServers_ = "";
 
@@ -2109,8 +2030,7 @@ public final class BrokersConfig {
         } else {
           result.triggers_ = triggersBuilder_.build();
         }
-        result.namespace_ = namespace_;
-        result.name_ = name_;
+        result.path_ = path_;
         result.bootstrapServers_ = bootstrapServers_;
         onBuilt();
         return result;
@@ -2198,12 +2118,8 @@ public final class BrokersConfig {
             }
           }
         }
-        if (!other.getNamespace().isEmpty()) {
-          namespace_ = other.namespace_;
-          onChanged();
-        }
-        if (!other.getName().isEmpty()) {
-          name_ = other.name_;
+        if (!other.getPath().isEmpty()) {
+          path_ = other.path_;
           onChanged();
         }
         if (!other.getBootstrapServers().isEmpty()) {
@@ -2799,110 +2715,21 @@ public final class BrokersConfig {
         return triggersBuilder_;
       }
 
-      private java.lang.Object namespace_ = "";
-      /**
-       * <pre>
-       * broker namespace
-       * </pre>
-       *
-       * <code>string namespace = 5;</code>
-       */
-      public java.lang.String getNamespace() {
-        java.lang.Object ref = namespace_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          namespace_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <pre>
-       * broker namespace
-       * </pre>
-       *
-       * <code>string namespace = 5;</code>
-       */
-      public com.google.protobuf.ByteString
-          getNamespaceBytes() {
-        java.lang.Object ref = namespace_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          namespace_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <pre>
-       * broker namespace
-       * </pre>
-       *
-       * <code>string namespace = 5;</code>
-       */
-      public Builder setNamespace(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        namespace_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * broker namespace
-       * </pre>
-       *
-       * <code>string namespace = 5;</code>
-       */
-      public Builder clearNamespace() {
-        
-        namespace_ = getDefaultInstance().getNamespace();
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * broker namespace
-       * </pre>
-       *
-       * <code>string namespace = 5;</code>
-       */
-      public Builder setNamespaceBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        namespace_ = value;
-        onChanged();
-        return this;
-      }
-
-      private java.lang.Object name_ = "";
+      private java.lang.Object path_ = "";
       /**
        * <pre>
-       * broker name
+       * path to listen for incoming events.
        * </pre>
        *
-       * <code>string name = 6;</code>
+       * <code>string path = 5;</code>
        */
-      public java.lang.String getName() {
-        java.lang.Object ref = name_;
+      public java.lang.String getPath() {
+        java.lang.Object ref = path_;
         if (!(ref instanceof java.lang.String)) {
           com.google.protobuf.ByteString bs =
               (com.google.protobuf.ByteString) ref;
           java.lang.String s = bs.toStringUtf8();
-          name_ = s;
+          path_ = s;
           return s;
         } else {
           return (java.lang.String) ref;
@@ -2910,19 +2737,19 @@ public final class BrokersConfig {
       }
       /**
        * <pre>
-       * broker name
+       * path to listen for incoming events.
        * </pre>
        *
-       * <code>string name = 6;</code>
+       * <code>string path = 5;</code>
        */
       public com.google.protobuf.ByteString
-          getNameBytes() {
-        java.lang.Object ref = name_;
+          getPathBytes() {
+        java.lang.Object ref = path_;
         if (ref instanceof String) {
           com.google.protobuf.ByteString b = 
               com.google.protobuf.ByteString.copyFromUtf8(
                   (java.lang.String) ref);
-          name_ = b;
+          path_ = b;
           return b;
         } else {
           return (com.google.protobuf.ByteString) ref;
@@ -2930,49 +2757,49 @@ public final class BrokersConfig {
       }
       /**
        * <pre>
-       * broker name
+       * path to listen for incoming events.
        * </pre>
        *
-       * <code>string name = 6;</code>
+       * <code>string path = 5;</code>
        */
-      public Builder setName(
+      public Builder setPath(
           java.lang.String value) {
         if (value == null) {
     throw new NullPointerException();
   }
   
-        name_ = value;
+        path_ = value;
         onChanged();
         return this;
       }
       /**
        * <pre>
-       * broker name
+       * path to listen for incoming events.
        * </pre>
        *
-       * <code>string name = 6;</code>
+       * <code>string path = 5;</code>
        */
-      public Builder clearName() {
+      public Builder clearPath() {
         
-        name_ = getDefaultInstance().getName();
+        path_ = getDefaultInstance().getPath();
         onChanged();
         return this;
       }
       /**
        * <pre>
-       * broker name
+       * path to listen for incoming events.
        * </pre>
        *
-       * <code>string name = 6;</code>
+       * <code>string path = 5;</code>
        */
-      public Builder setNameBytes(
+      public Builder setPathBytes(
           com.google.protobuf.ByteString value) {
         if (value == null) {
     throw new NullPointerException();
   }
   checkByteStringIsUtf8(value);
         
-        name_ = value;
+        path_ = value;
         onChanged();
         return this;
       }
@@ -2983,7 +2810,7 @@ public final class BrokersConfig {
        * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
        * </pre>
        *
-       * <code>string bootstrapServers = 7;</code>
+       * <code>string bootstrapServers = 6;</code>
        */
       public java.lang.String getBootstrapServers() {
         java.lang.Object ref = bootstrapServers_;
@@ -3002,7 +2829,7 @@ public final class BrokersConfig {
        * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
        * </pre>
        *
-       * <code>string bootstrapServers = 7;</code>
+       * <code>string bootstrapServers = 6;</code>
        */
       public com.google.protobuf.ByteString
           getBootstrapServersBytes() {
@@ -3022,7 +2849,7 @@ public final class BrokersConfig {
        * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
        * </pre>
        *
-       * <code>string bootstrapServers = 7;</code>
+       * <code>string bootstrapServers = 6;</code>
        */
       public Builder setBootstrapServers(
           java.lang.String value) {
@@ -3039,7 +2866,7 @@ public final class BrokersConfig {
        * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
        * </pre>
        *
-       * <code>string bootstrapServers = 7;</code>
+       * <code>string bootstrapServers = 6;</code>
        */
       public Builder clearBootstrapServers() {
         
@@ -3052,7 +2879,7 @@ public final class BrokersConfig {
        * A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
        * </pre>
        *
-       * <code>string bootstrapServers = 7;</code>
+       * <code>string bootstrapServers = 6;</code>
        */
       public Builder setBootstrapServersBytes(
           com.google.protobuf.ByteString value) {
@@ -4027,15 +3854,14 @@ public final class BrokersConfig {
       "\n\nattributes\030\001 \003(\0132\030.Trigger.AttributesE" +
       "ntry\022\023\n\013destination\030\002 \001(\t\022\n\n\002id\030\003 \001(\t\0321\n" +
       "\017AttributesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002" +
-      " \001(\t:\0028\001\"\222\001\n\006Broker\022\n\n\002id\030\001 \001(\t\022\r\n\005topic" +
-      "\030\002 \001(\t\022\026\n\016deadLetterSink\030\003 \001(\t\022\032\n\010trigge" +
-      "rs\030\004 \003(\0132\010.Trigger\022\021\n\tnamespace\030\005 \001(\t\022\014\n" +
-      "\004name\030\006 \001(\t\022\030\n\020bootstrapServers\030\007 \001(\t\"=\n" +
-      "\007Brokers\022\030\n\007brokers\030\001 \003(\0132\007.Broker\022\030\n\020vo" +
-      "lumeGeneration\030\002 \001(\004B]\n-dev.knative.even" +
-      "ting.kafka.broker.core.configB\rBrokersCo" +
-      "nfigZ\035control-plane/pkg/core/configb\006pro" +
-      "to3"
+      " \001(\t:\0028\001\"\177\n\006Broker\022\n\n\002id\030\001 \001(\t\022\r\n\005topic\030" +
+      "\002 \001(\t\022\026\n\016deadLetterSink\030\003 \001(\t\022\032\n\010trigger" +
+      "s\030\004 \003(\0132\010.Trigger\022\014\n\004path\030\005 \001(\t\022\030\n\020boots" +
+      "trapServers\030\006 \001(\t\"=\n\007Brokers\022\030\n\007brokers\030" +
+      "\001 \003(\0132\007.Broker\022\030\n\020volumeGeneration\030\002 \001(\004" +
+      "B]\n-dev.knative.eventing.kafka.broker.co" +
+      "re.configB\rBrokersConfigZ\035control-plane/" +
+      "pkg/core/configb\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -4058,7 +3884,7 @@ public final class BrokersConfig {
     internal_static_Broker_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_Broker_descriptor,
-        new java.lang.String[] { "Id", "Topic", "DeadLetterSink", "Triggers", "Namespace", "Name", "BootstrapServers", });
+        new java.lang.String[] { "Id", "Topic", "DeadLetterSink", "Triggers", "Path", "BootstrapServers", });
     internal_static_Brokers_descriptor =
       getDescriptor().getMessageTypes().get(2);
     internal_static_Brokers_fieldAccessorTable = new
diff --git a/proto/def/triggers.proto b/proto/def/triggers.proto
index 66533df55..807cf224b 100644
--- a/proto/def/triggers.proto
+++ b/proto/def/triggers.proto
@@ -34,14 +34,11 @@ message Broker {
   // triggers associated with the broker
   repeated Trigger triggers = 4;
 
-  // broker namespace
-  string namespace = 5;
+  // path to listen for incoming events.
+  string path = 5;
 
-  // broker name
-  string name = 6;
-
- // A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
-  string bootstrapServers = 7;
+  // A comma separated list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
+  string bootstrapServers = 6;
 }
 
 message Brokers {


Test patch:
diff --git a/control-plane/pkg/reconciler/broker/broker_test.go b/control-plane/pkg/reconciler/broker/broker_test.go
index ce3854c33..948a9ae4a 100644
--- a/control-plane/pkg/reconciler/broker/broker_test.go
+++ b/control-plane/pkg/reconciler/broker/broker_test.go
@@ -116,8 +116,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -173,8 +172,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
 							DeadLetterSink:   "http://test-service.test-service-namespace.svc.cluster.local/",
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -267,8 +265,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
 							DeadLetterSink:   "http://test-service.test-service-namespace.svc.cluster.local/",
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -320,8 +317,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -361,8 +357,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44a",
@@ -390,8 +385,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44a",
@@ -401,8 +395,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -486,8 +479,7 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
 							DeadLetterSink:   "http://www.my-sink.com/api",
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -541,15 +533,13 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:             BrokerUUID,
 							Topic:          GetTopic(),
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 					},
 				}, &configs),
@@ -572,14 +562,12 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -622,14 +610,12 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
-							Name:      BrokerName,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  Path(BrokerNamespace, BrokerName),
 						},
 					},
 					VolumeGeneration: 1,
@@ -653,14 +639,12 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -706,14 +690,12 @@ func brokerReconciliation(t *testing.T, format string, configs Configs) {
 							Id:             "5384faa4-6bdf-428d-b6c2-d6f89ce1d44b",
 							Topic:          "my-existing-topic-a",
 							DeadLetterSink: "http://www.my-sink.com",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 						{
 							Id:               BrokerUUID,
 							Topic:            GetTopic(),
-							Namespace:        BrokerNamespace,
-							Name:             BrokerName,
+							Path:             Path(BrokerNamespace, BrokerName),
 							BootstrapServers: bootstrapServers,
 						},
 					},
@@ -819,10 +801,9 @@ func brokerFinalization(t *testing.T, format string, configs Configs) {
 				NewConfigMapFromBrokers(&coreconfig.Brokers{
 					Brokers: []*coreconfig.Broker{
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
-							Name:      BrokerName,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  Path(BrokerNamespace, BrokerName),
 						},
 					},
 					VolumeGeneration: 1,
@@ -848,8 +829,7 @@ func brokerFinalization(t *testing.T, format string, configs Configs) {
 							Id:             BrokerUUID,
 							Topic:          GetTopic(),
 							DeadLetterSink: "http://test-service.test-service-namespace.svc.cluster.local/",
-							Namespace:      BrokerNamespace,
-							Name:           BrokerName,
+							Path:           Path(BrokerNamespace, BrokerName),
 						},
 					},
 					VolumeGeneration: 1,
@@ -1150,3 +1130,31 @@ func getUnmarshallableError(format string) interface{} {
 	}
 	return "invalid character '-' after object key"
 }
+
+func TestPath(t *testing.T) {
+	type args struct {
+		namespace string
+		name      string
+	}
+	tests := []struct {
+		name string
+		args args
+		want string
+	}{
+		{
+			name: "namespace/name",
+			args: args{
+				namespace: "broker-namespace",
+				name:      "broker-name",
+			},
+			want: "/broker-namespace/broker-name",
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			if got := Path(tt.args.namespace, tt.args.name); got != tt.want {
+				t.Errorf("Path() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
diff --git a/control-plane/pkg/reconciler/trigger/trigger_test.go b/control-plane/pkg/reconciler/trigger/trigger_test.go
index c551027c7..a604c0777 100644
--- a/control-plane/pkg/reconciler/trigger/trigger_test.go
+++ b/control-plane/pkg/reconciler/trigger/trigger_test.go
@@ -85,10 +85,9 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 				NewConfigMapFromBrokers(&coreconfig.Brokers{
 					Brokers: []*coreconfig.Broker{
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
-							Name:      BrokerName,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 						},
 					},
 				}, &configs),
@@ -105,10 +104,9 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 				ConfigMapUpdate(&configs, &coreconfig.Brokers{
 					Brokers: []*coreconfig.Broker{
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
-							Name:      BrokerName,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 							Triggers: []*coreconfig.Trigger{
 								{
 									Destination: ServiceURL,
@@ -147,21 +145,20 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 				NewConfigMapFromBrokers(&coreconfig.Brokers{
 					Brokers: []*coreconfig.Broker{
 						{
-							Id:        BrokerUUID + "z",
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
+							Id:    BrokerUUID + "z",
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 							Triggers: []*coreconfig.Trigger{
 								{
 									Destination: ServiceURL,
 									Id:          TriggerUUID,
 								},
 							},
-							Name: BrokerName,
 						},
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 							Triggers: []*coreconfig.Trigger{
 								{
 									Attributes: map[string]string{
@@ -178,7 +175,6 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 									Id:          TriggerUUID,
 								},
 							},
-							Name: BrokerName,
 						},
 					},
 					VolumeGeneration: 2,
@@ -196,21 +192,20 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 				ConfigMapUpdate(&configs, &coreconfig.Brokers{
 					Brokers: []*coreconfig.Broker{
 						{
-							Id:        BrokerUUID + "z",
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
+							Id:    BrokerUUID + "z",
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 							Triggers: []*coreconfig.Trigger{
 								{
 									Destination: ServiceURL,
 									Id:          TriggerUUID,
 								},
 							},
-							Name: BrokerName,
 						},
 						{
-							Id:        BrokerUUID,
-							Topic:     GetTopic(),
-							Namespace: BrokerNamespace,
+							Id:    BrokerUUID,
+							Topic: GetTopic(),
+							Path:  broker.Path(BrokerNamespace, BrokerName),
 							Triggers: []*coreconfig.Trigger{
 								{
 									Attributes: map[string]string{
@@ -224,7 +219,6 @@ func triggerReconciliation(t *testing.T, format string, configs broker.Configs)
 									Id:          TriggerUUID,
 								},
 							},
-							Name: BrokerName,
 						},
 					},
 					VolumeGeneration: 3,
diff --git a/data-plane/core/src/test/java/dev/knative/eventing/kafka/broker/core/BrokerWrapperTest.java b/data-plane/core/src/test/java/dev/knative/eventing/kafka/broker/core/BrokerWrapperTest.java
index ad32b201b..0d88d7d49 100644
--- a/data-plane/core/src/test/java/dev/knative/eventing/kafka/broker/core/BrokerWrapperTest.java
+++ b/data-plane/core/src/test/java/dev/knative/eventing/kafka/broker/core/BrokerWrapperTest.java
@@ -139,8 +139,7 @@ public class BrokerWrapperTest {
         Arguments.of(
             new BrokerWrapper(
                 Broker.newBuilder()
-                    .setName("broker")
-                    .setNamespace("test-event-transformation-for-trigger-v1-broker-v1-6wlx9")
+                    .setPath("/broker/test-event-transformation-for-trigger-v1-broker-v1-6wlx9")
                     .setId("93ab71bd-9e3c-42ee-a0a2-aeec6dca48c9")
                     .setTopic(
                         "knative-broker-test-event-transformation-for-trigger-v1-broker-v1-6wlx9-broker")
@@ -162,8 +161,7 @@ public class BrokerWrapperTest {
             ),
             new BrokerWrapper(
                 Broker.newBuilder()
-                    .setName("broker")
-                    .setNamespace("test-event-transformation-for-trigger-v1-broker-v1-6wlx9")
+                    .setPath("/broker/test-event-transformation-for-trigger-v1-broker-v1-6wlx9")
                     .setId("93ab71bd-9e3c-42ee-a0a2-aeec6dca48c9")
                     .setTopic(
                         "knative-broker-test-event-transformation-for-trigger-v1-broker-v1-6wlx9-broker")
diff --git a/data-plane/dispatcher/src/test/java/dev/knative/eventing/kafka/broker/dispatcher/http/HttpConsumerVerticleFactoryTest.java b/data-plane/dispatcher/src/test/java/dev/knative/eventing/kafka/broker/dispatcher/http/HttpConsumerVerticleFactoryTest.java
index 93d0efd64..607deb449 100644
--- a/data-plane/dispatcher/src/test/java/dev/knative/eventing/kafka/broker/dispatcher/http/HttpConsumerVerticleFactoryTest.java
+++ b/data-plane/dispatcher/src/test/java/dev/knative/eventing/kafka/broker/dispatcher/http/HttpConsumerVerticleFactoryTest.java
@@ -85,16 +85,6 @@ public class HttpConsumerVerticleFactoryTest {
             return "http://localhost:43257";
           }
 
-          @Override
-          public String namespace() {
-            return null;
-          }
-
-          @Override
-          public String name() {
-            return null;
-          }
-
           @Override
           public String bootstrapServers() {
             return "0.0.0.0:9092";
@@ -168,16 +158,6 @@ public class HttpConsumerVerticleFactoryTest {
               return "";
             }
 
-            @Override
-            public String namespace() {
-              return null;
-            }
-
-            @Override
-            public String name() {
-              return null;
-            }
-
             @Override
             public String bootstrapServers() {
               return "0.0.0.0:9092";
diff --git a/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/RequestHandlerTest.java b/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/RequestHandlerTest.java
index 1faeb60bd..bf04d72b5 100644
--- a/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/RequestHandlerTest.java
+++ b/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/RequestHandlerTest.java
@@ -122,7 +122,7 @@ public class RequestHandlerTest {
     final var broker = broker1();
 
     final var request = mock(HttpServerRequest.class);
-    when(request.path()).thenReturn(String.format("/%s/%s", broker.namespace(), broker.name()));
+    when(request.path()).thenReturn(broker.path());
     final var response = mockResponse(request, RequestHandler.MAPPER_FAILED);
 
     final var handler = new RequestHandler<Object, Object>(
diff --git a/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/integration/ReceiverVerticleTest.java b/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/integration/ReceiverVerticleTest.java
index 572f6da72..b4c1ee242 100644
--- a/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/integration/ReceiverVerticleTest.java
+++ b/data-plane/receiver/src/test/java/dev/knative/eventing/kafka/broker/receiver/integration/ReceiverVerticleTest.java
@@ -171,8 +171,7 @@ public class ReceiverVerticleTest {
             RequestHandler.BROKER_NOT_FOUND,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name")
                     .build()
             )),
         new TestCase(
@@ -187,8 +186,7 @@ public class ReceiverVerticleTest {
             RequestHandler.BROKER_NOT_FOUND,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("hello")
-                    .setNamespace("broker-name")
+                    .setPath("/broker-name/hello")
                     .build()
             )),
         new TestCase(
@@ -203,8 +201,7 @@ public class ReceiverVerticleTest {
             RequestHandler.BROKER_NOT_FOUND,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("hello")
-                    .setNamespace("h")
+                    .setPath("/h/hello")
                     .build()
             )),
         new TestCase(
@@ -228,8 +225,7 @@ public class ReceiverVerticleTest {
             RequestHandler.RECORD_PRODUCED,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name1")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name1")
                     .build()
             )),
         new TestCase(
@@ -239,8 +235,7 @@ public class ReceiverVerticleTest {
             RequestHandler.MAPPER_FAILED,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name")
                     .build()
             )),
         new TestCase(
@@ -250,8 +245,7 @@ public class ReceiverVerticleTest {
             RequestHandler.BROKER_NOT_FOUND,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name")
                     .build()
             )),
         new TestCase(
@@ -268,8 +262,7 @@ public class ReceiverVerticleTest {
             RequestHandler.MAPPER_FAILED,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name3")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name3")
                     .build()
             )),
         new TestCase(
@@ -288,8 +281,7 @@ public class ReceiverVerticleTest {
             RequestHandler.MAPPER_FAILED,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name4")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name4")
                     .build()
             )),
         new TestCase(
@@ -313,8 +305,7 @@ public class ReceiverVerticleTest {
             RequestHandler.RECORD_PRODUCED,
             new BrokerWrapper(
                 BrokersConfig.Broker.newBuilder()
-                    .setName("broker-name5")
-                    .setNamespace("broker-ns")
+                    .setPath("/broker-ns/broker-name5")
                     .build()
             ))
     );
diff --git a/data-plane/tests/src/test/java/dev/knative/eventing/kafka/broker/tests/DataPlaneTest.java b/data-plane/tests/src/test/java/dev/knative/eventing/kafka/broker/tests/DataPlaneTest.java
index 9272baffd..73dbef215 100644
--- a/data-plane/tests/src/test/java/dev/knative/eventing/kafka/broker/tests/DataPlaneTest.java
+++ b/data-plane/tests/src/test/java/dev/knative/eventing/kafka/broker/tests/DataPlaneTest.java
@@ -164,8 +164,7 @@ public class DataPlaneTest {
         .of(
             new BrokerWrapper(Broker.newBuilder()
                 .setTopic(TOPIC)
-                .setNamespace(BROKER_NAMESPACE)
-                .setName(BROKER_NAME)
+                .setPath(String.format("/%s/%s", BROKER_NAMESPACE, BROKER_NAME))
                 .setBootstrapServers(bootstrapServers())
                 .setId(UUID.randomUUID().toString())
                 .build()),