작성일: 2026년 5월 4일
Sofly 백엔드에서 Kafka는 도메인 이벤트를 비동기로 여러 처리 흐름에 전파하기 위해 사용됩니다.
현재 두 가지 토픽이 운영 중입니다.
flight.saved — 항공편 저장 시 정복지도 업데이트 / 알림 / 일정 자동 구성을 동시에 트리거workspace.invitation — 워크스페이스 초대 요청 생성 시 초대받은 사람에게 알림 전달각 Consumer는 별도 group ID를 가지므로 서로 영향을 주지 않습니다.
현재 Kafka 사용 범위는 travel-core-service 단독입니다. travel-supply-service는 Kafka를 사용하지 않습니다.
| 항목 | 값 |
|---|---|
| 이미지 | confluentinc/cp-kafka:7.6.0 |
| 모드 | KRaft (ZooKeeper 없음) |
| 노드 구성 | 단일 노드 (broker + controller) |
| 로그 보존 | 24시간 |
| 힙 메모리 | 256MB ~ 384MB |
# local-infra/docker-compose.kafka.yml
docker compose -f local-infra/docker-compose.kafka.yml up -d
| 컨테이너 | 포트 | 용도 |
|---|---|---|
sofly-kafka |
9092 (외부), 29092 (내부) | Kafka 브로커 |
sofly-kafka-ui |
8989 | Kafka UI (provectuslabs/kafka-ui) |
Kafka UI: http://localhost:8989
# docker-compose.kafka.yml
docker compose -f docker-compose.kafka.yml up -d
프로덕션에서는 PLAINTEXT://sofly-kafka:9092로 advertise되며, sofly-net 네트워크를 통해 core-service와 통신합니다. Kafka UI는 포함되지 않습니다.