I am new at DDD and I came up with a question about a implementation that I recently made. The User layer of my DDD project asks the application Layer for a IModel type object for connecting to a RabbitMq Brooker. Then the application layer asks a domain layer service for a IModel, that finally delegates to the Infra Layer that task (through Interface implementation). It works fine, but the question is: is it against the DDD principle the Domain layer have knowledge of another project? Even though it is a Nuget package project.