Puppet currently only supports a single terminus implementation per model (node, facts, catalog, etc). However, there are times when users want to route to multiple endpoints, such as saving facts to puppetdb and splunk, etc. From glarizza https://puppetcommunity.slack.com/archives/C0W1X7ZAL/p1629318412042600 From nate.mccurdy https://puppetcommunity.slack.com/archives/C0W1X7ZAL/p1629391266056000 Composable termini thread https://puppetcommunity.slack.com/archives/C0W1X7ZAL/p1629406416062500 A common workaround for this limitation is to create a new terminus that inherit from another, perform the operation and delegate to the base class. For example, see https://github.com/puppetlabs/puppetlabs-splunk_hec/blob/ebf4f4c206ce29c09e654f4dcfb476e0cc73fd67/lib/puppet/indirector/facts/splunk_hec.rb#L33 https://github.com/puppetlabs/puppetlabs-satellite_pe_tools/blob/73b479b8471d734a414ae87ef8af0738c39b40c3/lib/puppet/indirector/facts/satellite.rb#L26 https://github.com/puppetlabs/puppetlabs-hdp/blob/d78b33e98a40c85d3ef1d96621fbc6c11ab1b096/lib/puppet/indirector/facts/hdp.rb#L36 |