> A hexagon defines some ports (the component it needs to work), some adapters > (the implementations it provides to other hexagons) and a core domain: the > logic of this hexagon.
Thank you for elaborating your thoughts. I see much better now what you are trying to do. I like many of the ideas of the hexagonal architecture that you are trying to achieve. In that case, let’s just focus on the core. The rest is really not that important at this time if the immediate goal is to document the project. I am a long-time enthusiast of DDD. If the “core” of the hexagonal architecture matches the “core domain” in the DDD sense, it would make the system very easy to understand. The “core” domain ought to be very explicit and should exactly match the domain concepts. When reading the code, it ought to be really obvious what is happening. My impression is that we agree on pretty much everything except maybe the details about how the core is developed. I don’t think it’s important at this time to go into that, though. From where I am coming from, in general the core domain should be able to pop out to somebody like me with very little effort. The ports and adapters merely provide access to the core (or support for the core, depending on your perspective), so if the core is clear and well understood, then the rest ought to be quite secondary. When using the system, the core does not change, only the “outside” components that interact with the core change. For this reason, the wiring that happens (for example with Guice Modules) is basically the connection between the outside components to the core via the ports/adapters, but the ports/adapters ought to be obvious if the core communicates its intentions well. If that describes James, then the path forward is now clear. > `Core domains` are a bit hidden in the current code With your help, I will try to figure out what the core is, and the rest should follow quite nicely. I will start a separate thread relating to the “core”, because this topic has drifted from the original discussion about Guice. Unless you think I am way off track with your thinking, I would suggest that you not reply to this email, but wait for me to start the new thread. :-) I think it’s good that we got here. Thanks for your patience. Cheers, =David --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org