I’m looking at adding functionality to a DDD project but I’m unsure of the best way to fit it in.
The needed functionality is tagging and user groups manipulation.
As many things will be taggable (users, journals, documents etc) it seems anti-DRY to recreate that functionality in each AR. Would it be sensible to have a Tag Repository which maintains a central tag table, then have various many-to-many tables for the different tagging types needed (i.e. associating tags to userId, journalId etc) or perhaps even a single many-to-many table which records the relationship type. If so, would the domain object have to be modified to hold the link to the tags?
The group functionality is similar. There is a need to allow users to create user groups, and then assign groups to non-public entities (journals, documents etc) to give them view access.
What would be the best way to add this new functionality to the project?
Design separate bounded contexts for tagging and the group functionality.