책너두 (도메인 주도 설계로 시작하는 마이크로서비스 개발) 38일차 (~326p)

요약

  • 8장. CQRS 패턴을 활용한 백엔드 마이크로서비스 개발
    • 도서 마이크로서비스 개발 (나머지 부분)
      • 외부 영역 - REST 컨트롤러 개발
      • 외부 영역 - 아웃바운드 어댑터 개발
      • 외부 영역 - 인바운드 어댑터 개발

메모

8.1.9 외부 영역 - REST 컨트롤러 개발

  • 재고 도서 정보 조회, 입고 도서 등록, 수정, 삭제, 그리고 재고 도서 등록, 수정, 삭제 기능을 제공함.

8.1.10 외부 영역 - 아웃바운드 어댑터 개발

  • BookProducerImpl은 서비스로부터 전달받은 BookChanged 도메인 이벤트를 카프카 메시지로 변환해서 전송하는 sendBookCreateEvent와 sendBookDeleteEvent 메서드를 포함함.
    • 이 메서드들은 도서 생성 또는 삭제 이벤트를 받아, 해당 이벤트를 JSON 형태로 직렬화한 후 카프카의 "topic_catalog" 토픽으로 메시지를 전송함.
  • 이러한 방식을 통해 도서 마이크로서비스는 메시지를 보내고, 도서 카탈로그 마이크로서비스가 이 메시지를 받아 도서의 상태 정보를 변경함으로써 데이터 일관성을 유지하게 됨.

8.1.11 외부 영역 - 인바운드 어댑터 개발

  • 도서 마이크로서비스가 메시지를 수신하는 방법 → 인바운드 컨슈머 어댑터로 구현됨.
  • 메시지를 수신하는 BookConsumer 클래스는 '대출 서비스'가 발송한 메시지의 토픽을 구독하고 메시지를 폴링함.
  • BookService는 재고 도서 서비스 인터페이스이며, 이를 구현하는 BookServiceImpl 클래스에서는 processChangeBookState 메서드를 통해 도서 상태를 수정함.
  • 도서 서비스의 내부 구조를 보면, 도메인 모델의 애그리거트 루트마다 서비스 인터페이스, 서비스 구현체, 저장소 리포지토리가 있음.
    • 이 구조에서 특이한 점은 재고 도서와 입고 도서 사이에 연관관계는 없지만, 서비스 구현체 간에는 호출 관계가 있음.
    • 그리고 도서 서비스는 이벤트를 구독하는 인바운드 어댑터이벤트를 발행하는 아웃바운드 어댑터 모두를 가지고 있음.

댓글

Designed by JB FACTORY