Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

스냅샷은 앞장 이벤트소싱과 함께 사용이되었습니다. 스냅샷은 성능상의 목적으로 다양한곳에서 혼합되어 사용될수 있으며 그 컨셉은 간단합니다. 무수히 발생하는 이벤트로 인해 우리가 설계한 어떠한 객체의 상태는

지속적으로 변경된다는 점이며 필요한 순간의 청사진만 찍어서 그것을 적절하게 활용할수 있다란 것입니다.



상태를 기록하는 범위주기에따라 아래와 같은 차이가 있으며, 그 차이를통해 스냅샷을 이해할수가 있습니다.

  • 발생 이벤트 저장 : 상태복원은 연속된 이벤트 재생을 통해 가능할수있으며 리플레이와같은 구현을 위해 이벤트 자체를 모두 기록 -이벤트소싱에활용
  • 상태변경 히스토리 저장 : 모든 이벤트를 기록할필요없이 특정시점의 상태를 복원을 하면되기 때문에, 원하는 만큼 상태를 기록함 -스냅샷
  • 마지막 상태만 저장 : 기존값을 Update하고 마지막 저장 상태만 유지함 -보편적인 Update방식


최근 이벤트 100개를 유지하는것과 ( 순수 Persist기능), 1000번째마다 스냅샷을 찍어서 100개를 유지하는것은

각각 요구하는 목적이 다르며 필요로하는 성능이 다를수 있으나 함께 작동을 하여 상호보완하는 컨셉이며

VMWare를 포함하여 데이터베이스 복구등에서 보편적으로 사용되는 장치입니다.

...

스냅샷은 다양한 이유로(디스크풀및 메모리풀등) 실패가 있을수 있으며 그에 대응하는 코드작성도 가능합니다.

AKKA의 에러처리는 Exception을 발생하여 하위 컴포넌트에게 전가하기보다

주로 상위 컴포넌트에게 메시지를통해 알려주는 방식을 선택합니다.


참고Link :

...