2.1 KiB
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.