콘텐츠로 이동
Javers 문서0.2

영속 방식 선택

최신 안정판 Javers 0.2.1 릴리스 기준

평상시 응답 속도보다 장애 뒤 어떤 질문에 답해야 하는지를 기준으로 저장소를 고릅니다.

영속 방식 선택 지도

기준ExposedRedisKafka 저장소
주 역할SQL 기반 감사 이력Redis 기반 스냅샷 이력스냅샷 발행 스트림
조회JaVers 조회, 일부는 메모리 필터Redis 키와 목록을 읽은 뒤 JaVers 조회읽기 불가, 빈 값 반환
순서스냅샷 버전과 커밋 순서목록 순서와 커밋 순서producer/partition 범위
재처리DB 복원·조회, 이벤트 재생 엔진은 아님Redis 영속 설정 또는 외부 재구축보존된 레코드를 소비자가 재생 가능
운영 책임DB와 스키마 운영자Redis 내구성·backup 운영자producer, topic, 소비자, 프로젝션 운영자

감사 이력을 DB에 오래 남겨야 하면 Exposed, Redis를 스냅샷 저장소로 운영할 준비가 돼 있으면 Redis를 선택합니다. Kafka는 인코딩한 스냅샷 발행이 목적이고 별도 소비자와 조회 모델을 운영할 때만 고릅니다.

세 방식 모두 종단 간 exactly-once를 보장하지 않습니다. Exposed는 여러 트랜잭션으로 나뉘고, Redis는 스냅샷과 순서 구조를 따로 갱신하며, Kafka는 전송 결과를 최대 30초 기다립니다. 재시도와 보정은 GlobalId, 스냅샷 버전, 커밋 ID, 애그리거트 ID, 소비자 오프셋을 기준으로 설계하세요.

여러 방식을 섞기 전에는 저장소 조합실패 계약을 확인해야 합니다.