pub async fn handle_shutdown(
    tx_collector_shutdown: Sender<CollectorMessage>,
    tx_publisher_shutdown: Sender<PublisherMessage>,
    rx_additional_shutdown: &mut Receiver<()>,
    collector_task: JoinHandle<()>,
    publisher_task: JoinHandle<()>
) -> Result<(), Error>