3센터 A-A-A RTGS 실시간총액결제 프로토타입 최초 버전관리 시작. - backend: Kotlin/Gradle 멀티모듈(sequencer, common, 채널/센터 모듈) - frontend: Vite + TS - infra: docker-compose, prometheus/grafana, ELK 네이티브 스크립트 - loadtest(k6), sim(장애/순서/정합성 시나리오), docs(PoC 보고서/복원력방안)
25 lines
1.2 KiB
SQL
25 lines
1.2 KiB
SQL
-- RTGS 계층 대사 리포트 (S1 정합성).
|
|
-- 실행: psql -h localhost -p 5433 -U rtgs -d rtgs -f reconcile.sql
|
|
\pset border 2
|
|
\echo ''
|
|
\echo '== 1) 계좌 총액 (보존 불변식: 이체 전후 항상 동일해야 함) =='
|
|
SELECT sum(balance) AS total_balance, count(*) AS accounts FROM account;
|
|
|
|
\echo '== 2) 거래 상태 분포 =='
|
|
SELECT status, count(*) AS cnt FROM transfer GROUP BY status ORDER BY status;
|
|
|
|
\echo '== 3) 미완결 잔류 (ACSP/PDNG에 머문 건 = 있으면 이상) =='
|
|
SELECT count(*) AS stuck FROM transfer WHERE status IN ('PDNG','ACSP');
|
|
|
|
\echo '== 4) 원장 vs 조회사본 대사 (ACCC 건수 일치해야) =='
|
|
SELECT (SELECT count(*) FROM transfer WHERE status='ACCC') AS ledger_accc,
|
|
(SELECT count(*) FROM settlement_view WHERE final_status='ACCC') AS view_accc;
|
|
|
|
\echo '== 5) 선저널 대사 (정산건 <= journal_log 기록건) =='
|
|
SELECT (SELECT count(*) FROM transfer WHERE status IN ('ACSP','ACCC')) AS settled,
|
|
(SELECT count(*) FROM journal_log) AS journal_rows;
|
|
|
|
\echo '== 6) 잔액 음수 계좌 (있으면 이중지급/오류) =='
|
|
SELECT count(*) AS negative_accounts FROM account WHERE balance < 0;
|
|
\echo ''
|