async def publish(self, job_id: UUID, update: SyncProgressUpdate) -> None:
        """Publish an update to a sync job channel.

        Note: Redis channels are created on-demand when someone subscribes.
        Publishing to a non-existent channel (no subscribers) is a no-op.

        Args:
            job_id: The sync job ID.
            update: The progress update to publish.
        """
        channel = self._channel_name(job_id)
        message = update.model_dump_json()

        subscribers = await redis_client.publish(channel, message)

        if subscribers > 0:
            logger.info(f"Published update to {subscribers} subscribers for job {job_id}")
Publish an update to a sync job channel.

        Note: Redis channels are created on-demand when someone subscribes.
        Publishing to a non-existent channel (no subscribers) is a no-op.

        Args:
            job_id: The sync job ID.
            update: The progress update to publish.
        
backend/airweave/platform/sync/pubsub.py