hey everyone, I work with @domparry and @sneakypeet, I'm busy learning about Polylith, really like what you guys have done!
I was wondering how commonly profiles are used, and how many may be created for a larger project?
Am I correct in saying that, if I have two components that implement the same interface, I can use a profile to switch out the implementations or I can execute the code in the interface namespace which I want to develop against?
I think you understand correctly. If you have two components a1
and a2
and both use the interface a
, all components and bases can only access the interface a
and each project can only contain either a1
or a2
(not both, because you are only allowed to use each interface once per project).
roger that, thanks
Hi Allan and thanks for your pull request, fixing typos in the doc! I just merged it. When your system grows from being one single system into more than one, then you usually want to create profiles so that you can keep the single development environment/experience. That's what we have done in at least two of our Polylith projects. The Polylith codebase doesn't need profiles, even though it has several projects and the reason is that none of the projects/artifact communicates with a service/project that is part of the workspace, over the wire.
That's really cool to hear. Hope you will enjoy the experience.