messaging-superpowers-package 설계서/계획서 기반 구현. registry를 19 → 43 leaf로 확장하고 src/messaging 아래 24개 leaf를 등록. - core-api: M1 publish/consume + M2 batch·delayed·pause-resume - policy/transport-spi: 재시도 결정, DLQ orchestration, admission control, lifecycle - kafka·rabbit(Stable): contiguous commit, confirm/return 상관, 배치, 보안 설정 - pulsar·nats(Experimental): 기본 비활성, live 인증 없음을 코드로 기록 - outbox/inbox/claim-check: 트랜잭션 결합, lease, 무결성 검증 - admin: plan → approve → execute를 타입으로 강제 - 문서 9종, infra compose 7종, JMH 벤치마크 3종 검증: 아키텍처 게이트 3종 통과, 24개 leaf 전부 check 통과, messaging 테스트 604개 통과/0 실패. 미완: 계획서가 요구한 실 브로커 IT 40개 중 7개만 작성. Rabbit 13 / Outbox 6 / Inbox 4 / NATS·Pulsar·Share 5 / testkit 2 / starter·admin 3, 그리고 TLS·ACL 2개가 남음.
34 lines
1.6 KiB
YAML
34 lines
1.6 KiB
YAML
# Kafka 4.3.x in KRaft mode.
|
|
#
|
|
# Single broker on purpose: this compose file exists to reproduce the platform's Stable profile
|
|
# locally, not to model a production cluster. The settings below are the ones the profile guard
|
|
# enforces, so a local run fails the same way a misconfigured deployment would.
|
|
services:
|
|
kafka:
|
|
image: apache/kafka:4.3.0
|
|
container_name: messaging-kafka
|
|
ports:
|
|
- "9092:9092"
|
|
environment:
|
|
KAFKA_NODE_ID: 1
|
|
KAFKA_PROCESS_ROLES: broker,controller
|
|
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
|
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
|
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
|
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
|
# acks=all is only a durability guarantee when more than one replica must acknowledge.
|
|
# With a single broker the platform still requires acks=all; min.insync.replicas is 1 here
|
|
# and is expected to be 2 in any environment that claims replication evidence.
|
|
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
|
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
|
|
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
|
KAFKA_MIN_INSYNC_REPLICAS: 1
|
|
# Topology is created by infrastructure, never by the application.
|
|
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 >/dev/null 2>&1"]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 20
|