Page History
...
| Code Block | ||
|---|---|---|
| ||
@Saga
class OrderProcessingSaga {
@SagaEventHandler(...)
fun on(OrderCreatedEvent e) {
// 다음 행동 트리거
}
} |
...
💎 Axon Framework의 장점
| 장점 | 설명 |
|---|---|
| DDD 구조를 잘 반영 | 복잡한 도메인을 명확히 모듈화 가능 |
| CQRS 구현 지원 | 읽기/쓰기 분리로 확장성과 성능 확보 |
| Event Sourcing 지원 | 과거 상태 추적과 시간여행 가능 |
| Spring Boot 통합 | 손쉬운 설정과 Bean 관리 |
| Axon Server 제공 | 이벤트 저장소와 라우팅을 중앙 관리 가능 |
| Saga로 프로세스 오케스트레이션 | 여러 도메인의 장기 트랜잭션 처리 가능 |
...
📦 Axon Server (선택사항)
Axon 전용 이벤트 저장소 및 라우팅 서버
Kafka, RabbitMQ 없이도 분산 처리 가능
클러스터링, 메시지 라우팅, 모니터링 포함
...
🎯 Axon은 언제 적합할까?
| 적합한 경우 | 설명 |
|---|---|
| 복잡한 비즈니스 도메인 | 예: 금융, 쇼핑몰, 물류, 상담 시스템 등 |
| 강한 일관성이 필요한 경우 | 트랜잭션 단위 명확화 |
| 감사/이력 기능이 중요한 경우 | 모든 상태 변경을 이벤트로 보존 |
| 마이크로서비스 간 프로세스 연결 | Saga 및 이벤트 기반 통합 |
...
🧱 Axon 구성요소 요약 도표
| 역할 | 어노테이션 / 구성 |
|---|---|
| Aggregate | @Aggregate, @AggregateIdentifier |
| Command | 클래스 + @CommandHandler |
| Event | 클래스 + @EventSourcingHandler |
| Query | 클래스 + @QueryHandler |
| Saga | @Saga, @SagaEventHandler |
| 이벤트 저장소 | Axon Server / RDB / Kafka 등 |