spring-projects / spring-projects/spring-modulith
Improved Documentation in Fundamentals - The "Core" Module Concept
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.2k
- Forks
- 222
- PR merge metrics
- No merged PRs in 30d
Description
Torn between a Discussion and an Issue on this, but it would change the Documentation, which is in the codebase, so I went with an Issue. Similar Topic to this Discussion, however I hope I can provide a solid reason for Spring to provide more concrete references within the Documentation of this Project.
At Spring One (Highly Recommend attending 2024's or finding the Sessions), I talked with @odrotbohm and asked for an easy way to handle "Global" Configuration. This might be something like your Endpoint Security, Global Caching Mechanism, Message Broker, Etc. I believe we talked about using a configuration property, and moved along.
After spending multiple hours thinking about this. I was actually describing the purpose of a core/common Module. Which @Modulith already supports with sharedModules property. This realization came after several hours of pondering though, and when a framework is enforcing an Opinionate View, it should also help those coming from other views to adjust. Although an entire mental model shift is impossible to put into Documentation, I believe there is a strong value for Developers who are new to DDD to have something within the Project itself to reference on how they can transition their current Applications.
For that reason I think adding a "Core" Module Concept Section in the Fundamentals portion of the Documentation would be a high value. It would also be more documentation for understanding why/when to use sharedModules in @Modulithic.
Requested Change
- Include a Section on an Application's "Core" Module in Fundamentals.
Would be really nice Change
- Include an Example Repository of a Layer -> Modulith App transition.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Fundamentals portion of the documentation and the linked Discussion, then review how sharedModules is described. Add a focused section explaining the Core module concept and when to use sharedModules, with an optional transition example repository if scope permits. Done means the new guidance is concrete enough for developers moving from layered applications.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100