bluetape4k workshop
English 설계 문서

SaaS Usage Billing · Interactive Architecture

사용량 이벤트를 보정 가능한 청구서로 확정하기

같은 과금 요구사항을 원장형 기준선, Event Sourcing, 다섯 마이크로서비스로 구현했을 때 데이터 권위와 복구 비용이 어떻게 달라지는지 비교합니다.

원장형 기준선

PostgreSQL 하나에서 중복 수집, 발생 시각 가격, 재시작 가능한 마감, 불변 원장과 청구서를 함께 지킵니다.

최종 권위postgresql-ledger
검증할 시나리오
시작 상태
관찰 결과
허용된 후속 조치

구현 방식이 바뀌어도 유지할 불변식

SOURCE_EVENT_DEDUP원천 이벤트 중복 방지

재시도 횟수와 무관하게 업무 사실은 한 번만 남긴다.

OCCURRED_AT_PRICE발생 시각의 가격

청구 시각이 아니라 사용 시각의 가격 구간을 선택한다.

IMMUTABLE_FINANCIAL_FACT확정 금액 불변

확정된 금액은 수정하지 않고 새 보정 기록으로 연결한다.

RESTART_SAFE_RESULT재시작 안전성

중단 지점부터 다시 실행해도 최종 결과가 같아야 한다.

LINKED_CORRECTION연결된 보정

늦거나 잘못된 결과는 원본을 가리키는 조정으로 남긴다.