Axon Framework를 이용해서 이벤트 소싱을 도입하자
·
backend
원래는 이벤트 소싱으로 도메인을 먼저 관리하고, CQRS 패턴을 이용해서 Command와 Query를 분리하면서 책임을 명확히 하는 식으로 단점을 보완하는게 맞다.​본 프로젝트는 이와 다르게, 전적 통계를 위해 CQRS 패턴을 먼저 구현해서 Axon Server 없이 Kafka만을 이용해서 게임이 끝날때의 전적 종료 이벤트를 받아 작업했다. ​그러다가 member 서비스에서 사용자 데이터를 관리하는데 있어서 전적 결과에 따른 실력 점수(Elo, MMR 등)의 변동은 비즈니스적으로 정합성 관리가 중요하다고 판단했다. ​따라서 인과는 좀 다르지만 뒤늦게 이벤트 소싱을 통해 사용자 정보를 관리하게 되었다. ​아직 사용자 서비스에 대한 CQRS는 구현되지 않았고, 전적 쿼리 서비스와 전적 서비스간의 이벤트 처리..
Axon와 Kafka는 어떻게 다른가?
·
backend
작업하는 프로젝트에서 CQRS 패턴을 이용하고자 EDA를 고민하던 차에, Axon Server를 두지 않고 기존에 운용하던 Kafka를 통해 이벤트를 전달하도록 하기 위해 axon-kafka를 공부했다. ​Axon Server는 메시지 브로커로 CQRS 패턴이나 이벤트 소싱 기반 아키텍처 구현을 지원하는 플랫폼이다. 얼핏 보면 Kafka와 비슷한 역할로 보이는데, 이벤트 소싱(Event Sourcing)을 중심으로 알아보자.​Event-Driven Architecture이벤트 생성 및 처리를 중심으로 애플리케이션 구축을 지지한다. 이는 주로 실시간, 분산 및 확장성에서 반응성이 있어야 하는 최신 서비스에 따라 주도되어 왔다.​ Event SourcingDDD(Domain-Driven Design)에서 시..