When you come with Helix principles, you will see some challenges. One of them is to set the datasource Template on rendering. Rendering is being created in the feature layer and datasource template is created under the project layer as well as one rendering can have different datasource locations in multisite. Now as per the helix principle you can not add any reference from the project layer to the feature layer. Multisite project in the foundation layer is resolving this dependency by implementing a
getRenderingDatasource processor -
<processor type="Sitecore.Foundation.Multisite.Pipelines.GetDatasourceLocationAndTemplateFromSite, Sitecore.Foundation.Multisite" patch:after="processor[@type='Sitecore.Pipelines.GetRenderingDatasource.GetDatasourceLocation, Sitecore.Kernel']" />
This processor looks for the "site" prefix in datasource location and based on it find the
Datasource Configuration item and for this item, it set the datasource location and template.
This project also includes
multisite:createdatasourcesetting command for creating rendering settings and
webedit:openexperienceeditorcommand for fixing of switching to the default site instead of one matched by domain.