
To maintain service boundaries and ensure proper separation of concerns within our microservice architecture, direct aggregation lookups ($lookup) from the skills context into the courses collection must be avoided.
const documents = await this.model.aggregate<SkillCourseAggregateDocument>([
{
$lookup: {
from: 'courses',
let: { skillName: '$name' },
pipeline: [
{
$match: {
$expr: {
$in: ['$$skillName', '$skills'],
},
},
},
{ $match: queryFilter },
],
as: 'courses',
},
},
]);
โฆcreates a tight coupling between the skills(inside global microservice)and
courses domains by assuming internal schema knowledge and exposing cross-context joins. This breaks the principle of encapsulation and introduces hidden dependencies that make services harder to evolve independently.
Please authenticate to join the conversation.
Completed
Feature Request
About 1 year ago

[Deleted User]
Get notified by email when there are changes.
Completed
Feature Request
About 1 year ago

[Deleted User]
Get notified by email when there are changes.