bluetape4k workshop
SaaS Usage Billing · Interactive Architecture
사용량 이벤트를 보정 가능한 청구서로 확정하기
같은 과금 요구사항을 원장형 기준선, Event Sourcing, 다섯 마이크로서비스로 구현했을 때 데이터 권위와 복구 비용이 어떻게 달라지는지 비교합니다.
원장형 기준선
PostgreSQL 하나에서 중복 수집, 발생 시각 가격, 재시작 가능한 마감, 불변 원장과 청구서를 함께 지킵니다.
검증할 시나리오
구현 방식이 바뀌어도 유지할 불변식
SOURCE_EVENT_DEDUP원천 이벤트 중복 방지재시도 횟수와 무관하게 업무 사실은 한 번만 남긴다.
OCCURRED_AT_PRICE발생 시각의 가격청구 시각이 아니라 사용 시각의 가격 구간을 선택한다.
IMMUTABLE_FINANCIAL_FACT확정 금액 불변확정된 금액은 수정하지 않고 새 보정 기록으로 연결한다.
RESTART_SAFE_RESULT재시작 안전성중단 지점부터 다시 실행해도 최종 결과가 같아야 한다.
LINKED_CORRECTION연결된 보정늦거나 잘못된 결과는 원본을 가리키는 조정으로 남긴다.