한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다
이번에 리뷰하게 된 책은 "이벤트 기반 마이크로서비스 구축"입니다.
과거에도 SOA(서비스 지향 아키텍처) 같은 것을 통해 (상태변화같은) 이벤트가 발생시 여러 서비스 간에 메시지를
주고 받는 기술은 존재했습니다.
현대의 이벤트 기반 마이크로서비스 아키텍처에서는 이벤트 수신 대상(마이크로서비스)이 동적으로 수십수백개 등으로 확장될 수가 있습니다.
pub/sub를 통해 이벤트를 발행하고, 이벤트는 일회성으로 소비되는게 아니라 같은 메시지를 다른 서비스에서도 수신할 수 있도록 보존되어야 합니다.
코레오그래피 패턴이나 오케스트레이션 패턴등을 활용해 워크플로를 구성해야 합니다.
중복이벤트를 방지하기 위한 노력도 해야하구요.
서로 독립적인 마이크로서비스들의 분산트랜잭션등을 지원하기 위해 어떤 이벤트가 정상완료 되었는지 확정처리할 것인지
잘못되었을때 DB의 redo/undo 로그처럼 체인지 로그를 기록하고 특정 시점부터 다시 시도할 것인지 아니면 보상서비스를 실행시킬 것인지 등도 고려해야합니다.
이벤트의 포맷변경에 따른 버전처리 및 관련 직렬화 역지렬화도 고려해야 합니다.
테스트와 배포에 대해서도 고민해야 합니다.
이 책은 구조, 통신, 통합, 배포등에 대해 그림과 함께 개념을 설명하고 있습니다만, 초보자(혹은 실무자가 아닌) 사람이 읽기에는 좀 어렵습니다. 용어도 낯설고 카프카같은 어떤 구체적인 제품에 대한 실습이 있는 책은 아닙니다. 그래도 이벤트 기반 마이크로서비스에서 고려해야할 용어나 개념이나 시나리오 에 대해 전반적으로 다뤘다는 점은 좋았습니다.