Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/odrotbohm/tactical-ddd-workshop
Sample code for my Tactical DDD with Java workshop
https://github.com/odrotbohm/tactical-ddd-workshop
ddd jmolecules moduliths spring-boot
Last synced: 3 months ago
JSON representation
Sample code for my Tactical DDD with Java workshop
- Host: GitHub
- URL: https://github.com/odrotbohm/tactical-ddd-workshop
- Owner: odrotbohm
- License: apache-2.0
- Created: 2021-11-22T12:23:12.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-31T06:15:22.000Z (7 months ago)
- Last Synced: 2024-05-31T07:31:15.064Z (7 months ago)
- Topics: ddd, jmolecules, moduliths, spring-boot
- Language: Java
- Homepage:
- Size: 260 KB
- Stars: 26
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: readme.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Tactical DDD with Java
This repository contains sample code for my "Tactical DDD with Java" workshop.
It consists of 4 modules that showcase different aspects of how to write architecturally evident code with jMolecules and structure applications with Moduliths.== 1. DDD Building Blocks and structural validation
Showcases…
* … how using jMolecules DDD abstractions in a domain model allow to verify rules originating from the concepts expressed via https://github.com/xmolecules/jmolecules-integrations/tree/main/jmolecules-archunit[jMolecules ArchUnit integration].
== 2. Out of the box port integration for jMolecules types
Showcases…
* … value types and identifiers working as their primitive values in JSON representations using https://github.com/xmolecules/jmolecules-integrations/tree/main/jmolecules-jackson[jMolecules Jackson integration].
== 3. Reducing boilerplate code for persistent models
Showcases…
* … the use of https://github.com/xmolecules/jmolecules-integrations/tree/main/jmolecules-bytebuddy[jMolecules' ByteBuddy plugin] to default the JPA mappings to follow the aggregate structure expressed in the model.
== 4. Building low-coupled modules using https://github.com/spring-projects-experimental/spring-modulith[Spring Modulith]
Showcases…
* … the package convention to define logical modules.
* … strictly models cross-aggregate references as jMolecules ``Association``s.
* … using domain events to implement interaction between modules and avoid bean references across module boundaries.
* … implementing tests that verify business functionality around the published and consumed events.
* … the use of Spring Modulith's `Documenter` to create documentation around the module structure, relevant components of each module and their interaction.