feat: add notification production capability
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user