event source model

  1. 상태 변화를 이벤트로 표현한다.
    • 모든 상태변화는 이벤트로 표현함.
    • 각 이벤트는 "무슨 일이 일어났는지"를 설명하는 불변 객체
    • 예: { type: 'ADD_TODO', payload: { text: '할 일' } }
  2. 이벤트 로그 유지
    • 모든 이벤트는 시간 순서대로 로그에 저장됨.
    • 이벤트 로그는 애플리케이션의 single source of truth
    • 현재 상태는 이벤트들을 순차적으로 적용한 결과물
  3. 상태 재구성
    • 현재 상태는 이벤트들을 처음부터 순서대로 처리하여 계산됨.
    • 즉, 상태 = 이벤트들을 순차적으로 적용

장점