Dynamic Message Routing
Dynamic Message Routing (DMR) forwards and propagates messages between event brokers in an event mesh. DMR enables connected event brokers, or nodes, to automatically determine how to forward event messages to other nodes that have subscribers connected to them.
You use DMR to create a network, or event mesh, that connects brokers together within a cluster (horizontal scaling) or between clusters (multi-site scaling) to exchange subscription information. Once the relationships between brokers are established by the administrator, the brokers dynamically discover how to route messages. Client applications don't have to take any special action to publish or consume messages across the mesh. With DMR, you can move any applications within the mesh, or change the interests of those applications, and the mesh automatically updates the routing—without any intervention.
Using DMR is the current best practice for setting up an event mesh, but it isn't the only way. Other commonly used technologies include Multi-Node Routing and Message VPN Bridging.
With horizontal scaling, you connect brokers (nodes) together to create a DMR cluster. DMR clusters are typically used for software and hardware event brokers at the same site. PubSub+ Cloud event broker services are usually set up as single-node cluster and don't use horizontal scaling.
Each node in a cluster has a connection to every other node. These connections within the same cluster are called internal links; collectively, we refer to this as a "full mesh" of links. Within this fully-meshed cluster, each node is aware of all the others so that every event published in the network is seamlessly routed to the consuming applications.
In multi-site scaling, you connect two or more clusters together. Connections between clusters are called external links. Clusters may contain a single node or they may contain several nodes. If a cluster has more than one node, one node in the cluster is designated as a gateway node to send and receive messages between clusters.
It is not necessary for each cluster to be connected to every other cluster in an event mesh; however, messages only propagate between directly-connected clusters. If an external link is not configured between two clusters, messages do not pass between them. For example, in the diagram below, messages won't pass between Cluster A and Cluster C because they are not connected.
For more information about DMR, see DMR Overview.
You should now have a basic understanding of how an event mesh works and you can move on to Next Steps.