> **보존 안내** — 이 파일은 저장소 루트 `messaging-superpowers-package/` 에 있던 납품 패키지의 README다. > 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고, > `validate_messaging_docs.py` 와 `MANIFEST.sha256` 은 제거했다. > 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다. # Messaging Platform Superpowers Package 이 패키지는 `Java/Spring Messaging 플랫폼 심층 리서치`를 구현 기준으로 변환한 설계서와 구현 계획서다. ## 포함 파일 ```text docs/superpowers/specs/2026-08-10-messaging-platform-design.md docs/superpowers/plans/2026-08-10-messaging-platform-implementation-plan.md VALIDATION.md validate_messaging_docs.py MANIFEST.sha256 ``` ## 설계 경계 - 자체 `messaging-core`가 공개 계약을 소유한다. - Kafka 4.2+/4.3.x와 RabbitMQ 4.3.x는 Stable Adapter다. - Kafka Share Group, Pulsar 4.0 LTS·4.2, NATS JetStream 2.14.x는 Experimental Adapter다. - 공통 `EXACTLY_ONCE` 또는 전역 순서 옵션을 제공하지 않는다. - publish 결과는 `CONFIRMED`, `REJECTED`, `AMBIGUOUS`와 broker evidence로 표현한다. - M1 Typed, M2 Advanced, M3 Native Capability, M4 Admin Plane을 분리한다. - retry·DLQ·redrive에서 logical `messageId`를 유지한다. - DLQ publish 확인 전에 source message를 settlement하지 않는다. - Transactional Outbox, Inbox, Idempotent Consumer, Claim Check를 Reliability 모듈로 분리한다. ## 구현 가정 실제 Backend Skeleton 저장소가 입력에 포함되지 않았기 때문에 계획은 다음 기준을 사용한다. - Java 21 - Gradle Kotlin DSL - root package: `io.backend.skeleton.messaging` - module root: `modules/messaging` - PostgreSQL 16, Flyway, Spring JDBC/JPA - JUnit 5, AssertJ, ArchUnit, Testcontainers, Toxiproxy - Spring Framework 6.2 공통 호환선과 Spring 7.0 호환성 job 실제 저장소 구조가 다르면 파일 경로와 dependency catalog만 매핑한다. 공개 계약, 모듈 의존 방향, 신뢰성 상태 모델과 검증 기준은 그대로 유지한다. ## 문서 검증 패키지 루트에서 다음 명령을 실행한다. ```bash ./validate_messaging_docs.py \ docs/superpowers/specs/2026-08-10-messaging-platform-design.md \ docs/superpowers/plans/2026-08-10-messaging-platform-implementation-plan.md ``` `VALIDATION.md`는 문서 구조, Task 1~44 연속성, TDD 단계, 필수 설계 계약, placeholder, 중복 파일 경로를 확인한 정적 검증 결과다. ## 검증 한계 현재 검증은 설계·계획 문서에 대한 정적 검증이다. 실제 저장소가 제공되지 않아 Gradle compile, broker 통합 테스트, chaos test, 성능 인증은 실행하지 않았다. 구현 계획의 각 Task가 해당 실행 검증을 추가하도록 구성되어 있다.