Files
clean-architecture-backend-…/docs/superpowers/packages/messaging/README.md
T

2.9 KiB

보존 안내 — 이 파일은 저장소 루트 messaging-superpowers-package/ 에 있던 납품 패키지의 README다. 2026-08-15 문서 정리에서 설계서·계획서는 docs/superpowers/specs/docs/superpowers/plans/ 로 통합했고, validate_messaging_docs.pyMANIFEST.sha256 은 제거했다. 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.

Messaging Platform Superpowers Package

이 패키지는 Java/Spring Messaging 플랫폼 심층 리서치를 구현 기준으로 변환한 설계서와 구현 계획서다.

포함 파일

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만 매핑한다. 공개 계약, 모듈 의존 방향, 신뢰성 상태 모델과 검증 기준은 그대로 유지한다.

문서 검증

패키지 루트에서 다음 명령을 실행한다.

./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가 해당 실행 검증을 추가하도록 구성되어 있다.