목차
애그리게이트와 일관성 경계
불변조건, 제약, 일관성
Docs
관련 문서
애그리게이트와 일관성 경계
애그게이트,
,
일관성,
,
경계
불변조건, 제약, 일관성
제약
constraint
모델이 취할 수 있는 상태의 수를 제한
불변조건
invariant
항상 참이어야 하는 조건
완화
bend
경우에 따라 규칙을 일시적으로 해제
비즈니스 요구사항
주문 라인은 한번에 한 배치에만 할당될 수 있다
주문 라인이 0 또는 1개의 배치에만 할당될 수 있고 2개 이상의 배치에 할당될 수 없음
코드에서 실수로 같은 라인에 대해 Batch.allocate()를 두 가지 다른 배치에 호출하는 일이 없어야 함
비즈니스 다른 요구사항
주문 라인 수량보다 더 작은 배치에 라인을 할당할 수는 없다.
제약조건
: 배치에 있는 재고보다 많은 재고를 주문 라인에 할당할 수 없음
불변조건
: 가용 재고 수량이 0 이상이어야 함
시스템 상태를 업데이트할 때마다 코드는 이런 불변조건을 어기지 않는지 확인 필요
동시성
concurrency
재고를 여러 주문 라인에 동시에 할당할 수 있게 되고, 배치를 변경하는 동시에 주문 라인을 할당할 수도 있음
보통 DB 테이블에 락(lock)을 적용해 이런 문제를 해결
Docs
애그리게이트
관련 문서
Plugin Backlinks: 아무 것도 없습니다.