전체 구조 요약

역할 분리

쓰기 흐름(POST/PUT/DELETE)

  1. @Transactional 안에서
  2. 트랜잭션 커밋되면 둘 다 함께 확정됨 → Mongo/Redis가 죽어도 이벤트(outbox)가 남아서 유실 없음

Outbox 워커(백그라운드) 흐름

읽기 흐름(GET)

상세 조회

  1. Redis hit → 바로 반환
  2. miss → Mongo hit → Redis에 캐시 후 반환