I am assuming by Topic you mean a multicast-group. Since it is possible for different clients to register themselves to different groups, and tx/rx messages accordingly.
Source:
Multicast Group Concept
Multicast is based on the concept of a group. An arbitrary group of receivers expresses an interest in receiving a particular data stream. This group does not have any physical or geographical boundaries—the hosts can be located anywhere on the Internet. Hosts that are interested in receiving data flowing to a particular group must join the group using IGMP. Hosts must be a member of the group to receive the data stream.
This article has examples on how to join/leave a multicast group.
All clients registered to a specific group would send/receive data being tx/rx to that group.
Fig1: Source
Also, see Emcaster
The library provides a powerful api for publishing and subscribing to reliable messages over Pragmatic General Multicast or Udp Multicast. The framework is designed for high throughput and low latency.
The library is designed for clustering, application monitoring, and high performance, reliable data publishing.