For multi-tenant systems, Vaughn Vernon suggests the tenant id should be on the domain entities. This doesn't seem right to me. The tenant id has no business meaning (with the exception of an aggregate in the context of identity/access control). To me, it seem like the tenant id is an application or infrastructure level detail. The repositories that give access to aggregates can be instantiated with the tenant information they need to provide access to the right data.
Consider, if we had a system that served only a single tenant and then we expanded that system to serve multiple tenants. If the tenant id lives on the domain entities, the domain model will have to be modified to accommodate this business rule independent change. If the tenant information is handled by the application layer or infrastructure layer, it will not. This indicates to me that tenant id does not belong in the aggregates or in the domain model, in general.
Is there any precedent for my perspective in the DDD literature? Is there something I'm missing that supports the notion of the tenant information being part of the domain model?
Update: After thinking about this and reviewing some of the responses, I have come to the conclusion that tenant must be part of the domain. The thing that finally clenched this for me is domain events and the fact that down stream recipients of those events must be aware of the tenant in order to take tenant specific actions in response to the reception of those events. If tenant id were treated as a infrastructure detail they would not be available for inclusion on domain events. Thanks for all the responses.