Seeking guidance regarding pipeline design

Hello, I’m seeking guidance on the setup described below and want to ensure my understanding is accurate.

We receive various data streams from a variety of devices, some of which are compressed at the source, some are uncompressed. Our goal is for users to connect to a manager and access streams from one to multiple devices. All streams will always be connected to the manager, since they are recorded as well.

Should I have multiple pipelines where each src has its own (webrtc) sink
Or should I have one pipeline all going into a single sink?

Thank you in advance!

I would use separate pipelines connected via one of the ‘IPC’ mechanisms of GStreamer. For instance the inter plugin in gst-plugins-rs. When a user connects a new pipeline would be created and connected to some media source. In other words that pipeline would listen to the desired source. If you are using WebRTC then for each media stream that would be a new RTC pipeline. Look at the diagrams here for inspiration.

Edit: I highly recommend using some sort of IPC with separate pipelines. You do not want one branch of your graph to fail and bring down the whole pipeline. For an overview of what is available there is a talk here