# revision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
# modules.json last changed by: 21234e38 feat: grpc 기능 deep 구현

## 1. the operator-facing claim, verbatim
> 또한 registry의 messaging leaf는 모두 `runtime_memberships`가 비어 있다. 이는 **build-only /
> incubating** — 어느 composition root에도 편입되지 않았다는 뜻이며, 아래의 등급과는 다른 축이다.
> 등급은 "무엇이 증명되었는가", membership은 "무엇이 실행되는가"를 말한다. 애플리케이션에 배선하려면
> registry를 먼저 바꾸고 `verifyRuntimeModuleMembership`을 통과시켜야 한다. 자세한 규칙은

## 2. re-measured from the registry the claim names
messaging leaves          : 25
runtime_memberships empty : 7
runtime_memberships wired : 18

wired -> messaging-core-api, messaging-schema-api, messaging-schema-json, messaging-cloudevents, messaging-policy, messaging-transport-spi, messaging-runtime-core, messaging-observability, messaging-security, messaging-kafka, messaging-rabbit, messaging-reliability-api, messaging-outbox-jdbc-postgresql, messaging-inbox-jdbc-postgresql, messaging-claim-check, messaging-admin-api, messaging-admin-runtime, messaging-spring-boot-starter

empty -> messaging-schema-avro, messaging-schema-protobuf, messaging-kafka-share-experimental, messaging-pulsar-experimental, messaging-nats-experimental, messaging-spring-cloud-stream-bridge, messaging-testkit

## 3. the module policy file the claim defers to already records the correction
## Runtime membership이 비어 있다는 것의 의미

**이 절은 한동안 사실이 아닌 채로 남아 있었다.** "registry의 모든 messaging leaf는
`runtime_memberships`가 비어 있고 따라서 build-only"라고 쓰여 있었는데, 다섯 어댑터 remediation이
`messaging-spring-boot-starter`를 `app-bootstrap` 의존성으로 넣으면서 그 closure 전체가 런타임
classpath에 올라갔다. 정확한 목록은 registry가 소유하므로 여기서 세지 않는다 — 세는 순간 다시
drift한다.

지금 의미는 이렇다:

- 대부분의 leaf는 `runtime_memberships`에 `app-bootstrap`을 갖는다. **배포된 아티팩트가 싣고 있고,
  master switch `app.messaging.enabled`로 켜진다.** 기본값은 `false`다.
- 여전히 비어 있는 leaf(experimental transport, 일부 codec, bridge, testkit)만이 build-only /
  incubating이다.
- **런타임에 있다는 것과 자격이 증명됐다는 것은 다르다.** Kafka publish 경로만 실브로커 round trip으로

## 4. the assembly edge that made it true
87:    implementation project(':messaging:messaging-spring-boot-starter')

## verdict: CONFIRMED DRIFT.
docs/messaging/support-matrix.md:23 states all messaging leaves are unwired.
At this revision 18 of 25 declare runtime_memberships=[app-bootstrap].
src/messaging/CLAUDE.md, which the same paragraph names as the owner of the rule,
already retracts the claim. The two documents disagree at the same revision.
