I have a frontend project using VueJS and TS and I structured it using DDD. So far, I have some modules (bounded contexts, domains - use the term you prefer) which are used in two ways: some modules will have both views and widgets or only one of those, where the views have a route associated and the widgets are like "attachments" to views. For exemple, you can have the module for managing the kitchen of a hotel and, within it, a view for the CRUD of chefs; also, in the same module you can have a widget (which will operate within a modal) to see all meals prepared in a range of time. The view has all operations enclosed within it, but the widget usually will emit a selected record (in the example, a meal), so that another module can use it, let's say the module for managing bedroom requests, where you could select a meal for delivering to a bedroom.
Since those widgets are like attachments to serve other domains/bounded contexts, I thought of simply emitting the selected entity, but I've been advised against it because of strong coupling. An alternative recomended to me was the "published language" pattern, where I'd have DTO exporting the data I need instead of using the entity directly, so that a domain's entity won't escape its boundaries.
My biggest fear about this solution is that it seems a bit "too much". I mean, some modules are going to be complex and big - the appropriate scenario for a DDD approach-, but the widgets will usually be a simple CRUD, or even a listing, so it seems like I am overengeneering them. On the other hand, I know how big this system is going to get since I am migrating it from an already existing project, and it seems to make sense that every part of the project, even the smallest, follow the same principles: it would make every part of the project familiar, follow a single pattern, and be ready for extension when needed.
What's your take on this?
If more context is needed, let me know.