27 lines
2.1 KiB
Markdown
27 lines
2.1 KiB
Markdown
# Task 3 — the activation matrix, and where each row's evidence comes from
|
|
|
|
The plan's matrix is ten rows; the Compose contract is fifteen lanes; the in-process activation
|
|
suite is nineteen classes. They are not three copies of one thing, so this records which artefact
|
|
answers which row before anything is run. A row whose evidence is a passing unit test is recorded as
|
|
that, not as a runtime lane.
|
|
|
|
| # | Matrix row | Evidence |
|
|
| --- | --- | --- |
|
|
| 1 | five off | `off-local`, `off-dev`, `off-prod` lanes + `FiveAdapterOffInventoryTest` (bean/thread/endpoint inventory is in-process; a container cannot count beans) |
|
|
| 2 | JPA only | `local-jpa` lane (db + app) |
|
|
| 3 | Mongo only | `local-mongo` lane (mongo + rs-init + app) |
|
|
| 4 | Messaging only | `local-messaging` lane; `local-messaging-outbox` additionally proves the relay's database dependency |
|
|
| 5 | Notification + JPA, `INGEST_ONLY` | `local-notification-ingest`, and `local-notification-handoff` for the accept → restart → deliver-once half |
|
|
| 6 | Notification + JPA, `SERVING` | `local-notification-serving` |
|
|
| 7 | GraphQL only | `local-graphql` lane (keycloak + auth-smoke + graphql-smoke) |
|
|
| 8 | relay on, dependency missing | **no lane** — a startup that must be *rejected* is an in-process contract: `DependencyErrorStartupContractTest`, `CapabilityDependencyValidatorTest`. The plan requires the *name* of the missing switch, not merely a failure. |
|
|
| 9 | JPA + Mongo | `all-adapters` covers the both-on half; the two-implementations-of-one-port rejection is in-process (`CleanArchitectureTest` plus the composition tests), because it is a context-startup outcome |
|
|
| 10 | five on | `all-adapters` lane |
|
|
|
|
Rows 8 and 9 are deliberately not Compose lanes. Both are assertions that a context *refuses* to
|
|
start for a stated reason, and a Compose lane can only observe that a container exited — which is
|
|
the same observation for a missing switch, a bad password and a typo in a YAML key.
|
|
|
|
Lanes with no matrix row of their own — `shared-infra-local`, `shared-infra-dev`, `prod-smoke` —
|
|
carry Task 4's environment evidence rather than Task 3's activation evidence.
|