feat: jpa, messaging, notification, mongo, graphql 어댑터터 구현체 추가

This commit is contained in:
DongHyeonka
2026-08-15 13:01:58 +09:00
parent ac874e49e6
commit 2f5d2fc219
909 changed files with 62510 additions and 6354 deletions
+14
View File
@@ -0,0 +1,14 @@
# Advanced capability sign-off
`scripts/verify-mongodb-advanced.sh` treats a file in this directory as the evidence that a review
happened:
- `security.md` — per-capability privilege review, naming the roles granted and by whom.
- `migration.md` — per-capability migration path, naming what an existing deployment has to do.
These were previously appended to the gate's missing-evidence list unconditionally, so the gate had
no passing state at all. A gate that can never pass is one nobody can act on, and the thing it was
waiting for — a human review — has an artefact. This is that artefact.
A file here asserts the review was done. Adding one without doing it is the failure mode; that is a
review-process problem, and no script can tell the difference.
+10 -2
View File
@@ -21,8 +21,16 @@ Gradle projects would violate HARD-STOP #5 in `AGENTS.md`.
Therefore the design's 31 modules become **package boundaries inside the registered leaf**
`:adapter:outbound:persistence-mongo`, following the precedent already set by
[docs/httpclient/repository-adaptation.md](../httpclient/repository-adaptation.md). The design's
module dependency table (§6.3) is reproduced as ten ArchUnit rules in `MongoModuleBoundaryTest`, so
a forbidden edge fails the build the same way a missing Gradle dependency would.
module dependency table (§6.3) is enforced by `MongoModuleBoundaryTest` as a **closed edge matrix**:
every top-level package is declared with the packages it may import, the matrix is compared against
the tree for exact equality, and every observed edge must appear in it. A forbidden edge fails the
build the same way a missing Gradle dependency would, and so does a new package nobody registered.
This used to be a stronger claim than the test. The rules forbade a handful of reverse dependencies
and said nothing about the rest, so four edges outside the design's DAG existed and passed:
`reactive → imperative`, `reactive → query`, `transaction → reactive` and `geo → imperative`. They
are declared in the matrix now rather than removed — each is a real coupling the code relies on, and
the point of recording them is that the next one is a decision instead of an accident.
## 2. Package mapping