feat: add production capability foundations

This commit is contained in:
donghyeon-ka
2026-07-31 23:50:44 +09:00
parent b3add0162d
commit 567422f2e5
757 changed files with 132385 additions and 2146 deletions
+10 -1
View File
@@ -63,11 +63,20 @@ adapters implement application/domain ports directly and must not depend on this
| Mode | Propagation | Isolation | Read-only |
|---|---|---|---|
| `inWrite` | `REQUIRED` | `READ_COMMITTED` | `false` |
| `inRootWrite` | `REQUIRED` | `READ_COMMITTED` | `false` |
| `inRead` | `REQUIRED` | `READ_COMMITTED` | `true` |
| `inNew` | `REQUIRES_NEW` | `READ_COMMITTED` | `false` |
Pre-built templates are immutable after construction so concurrent callers cannot
observe each other's reconfiguration.
observe each other's reconfiguration. `inRootWrite` reuses the pre-built write template,
but first checks `TransactionSynchronizationManager.isActualTransactionActive()`.
When an actual ambient transaction exists it MUST throw
`NestedRootTransactionRejectedException` before invoking either the action or the
`PlatformTransactionManager`. It MUST NOT use `NEVER` or `REQUIRES_NEW`.
`inRootWrite` returns its action value only after `TransactionTemplate.execute` has
committed. A commit failure propagates the transaction exception and no success value
is returned to the caller.
### `inNew` pool-sizing constraint (D12 of feature-application-port-usecase-contract)