An MQTT Transmission Transmitter defines which tags Transmission consumes, how it consumes the tags, how it publishes tag data and which Sparkplug assets (Group, Edge node or Device) the tags belong to.

Resource allocation and consumption

Each Transmitter has its own resources allocated for scanning the tag tree, receiving tag change events, caching tag configuration, storing history, etc. More Transmitters will require more resources.

Sparkplug edge node to MQTT client 1:1 relationship

A Transmitter can have a single Sparkplug edgenode associated with it or it can have many. Each Sparkplug edgenode will establish its own single MQTT client connection to the MQTT server. 

Performance

Multiple Transmitters will always be faster because Transmission has dedicated resources and threads available per Transmitter. At start up, tags are "scanned" to get current configuration and values. When there are multiple edge nodes in a single Transmitter, tags are scanned and Birth messages are published sequentially for each Sparkplug edge node. When edge nodes are spread across multiple Transmitters, in a one-to-one relationship for example, getting tag configuration/values and publishing Sparkplug Birth messages will be done in parallel across all Transmitters and edge nodes. Adding Transmitters will allow for better scaling across more tags and Sparkplug edge nodes / devices, but will require more resources (CPU and RAM) to be available. 

Maximum number of Transmitter tags

There is no limit to the number of tags a Transmitter can consume or a Sparkplug edge node/device can encapsulate. There are costs associated with increased tag count... TO BE CONT...