Don't Force Topic Names to be the Same as Type Names

Your Topic names should represent the meaning of the data you are sending, not the structure of the data.

It is not necessary to build your system with one Topic per data type.  Instead, systems typically have data types that are reused by multiple Topics.  If you force your Topic names to be the same as your type names, it forces you to use a data type for only a single Topic, which can lead to artificial constraints on your system.

In RTI Connext DDS, a Topic represents a logical data stream.  Each Topic has a single data type that represents the structure of that Topic data.  That data type, on the other hand, may be used by many different Topics.  If you force your Topic to have the same name as your type, you are designing your data flows based on a naming convention instead of your system requirements.

As an example, you might have a data type called VideoData.

struct VideoData
{ 
   CodecKind videoCodec; 
   ResolutionType resolution; 
   sequence<octet, 2048> video; 
}; 

This structure is simple and reusable, so many Topics may use this same structure to represent different videos within your system, such as:

  • “Security Camera”
  • “UAV feed”
  • “Highway 17 Traffic Cam”
  • “Downing Street News Feed”