The BaseOS - AppStream sync situation

I am not sure if it’s pulp or katello which do it this way, but I was wondering, just for the better understanding: why is pulp/katello automatically syncing the AppStream repository with the BaseOS repository?

I know for provisioning the kickstart installer needs access to BaseOS and AppStream. But couldn’t that be handled more intelligently?

If I create a new product, e.g. CentOS Stream 9 I add BaseOS and AppStream (and more) repositories. When I sync, I sync the product thus, the sync for both starts at the same time.

It’s my understanding that a lot of the duplicate key value violation sync errors are due to this, because there are two parallel syncs syncing the identical AppStream content.

This also causes the BaseOS sync to take much longer than needed for the BaseOS content itself.

As far as I can tell, it’s not specified in the BaseOS repository to include the AppStream packages. This is in the .treeinfo. But that’s not part of the standard repository metadata. Thus, to me it seems as if pulp/katello specifically adds the AppStream sync to the BaseOS repository sync. Which to me seems unnecessary in many if not most cases, because I think most of the people will sync the whole product and thus have both BaseOS and AppStream anyway. No point in syncing AppStream twice…