dahee®
PROJECT 01 / 02

TripOOM

다국가 지출을 환율로 환산하고,
AI 소비 리포트와 복구 가능한 알림을 제공하는 여행 가계부

2026.05—2026.062-PERSON TEAMFULL-STACKCOMPLETED
← ALL PROJECTS
01/

Outbox

알림과 발송 의도를 하나의 트랜잭션에

MYSQL / WEB PUSH↗
02/

Worker Claim

4개 Worker의 중복 없는 선점

SKIP LOCKED↗
03/

AI Reports

계산과 생성을 분리한 소비 리포트

STRUCTURED OUTPUT↗
04/

FX Boundary

외부 환율 차이를 경계에서 정규화

EXTERNAL API↗

ONE PIPELINE, FOUR PROOFS

Why it
recovers.

01

발송 전에
멈춘다면

알림과 발송 의도를 같은 트랜잭션에 저장해 커밋 뒤 장애에도 처리할 작업이 남도록 했습니다.

ONE COMMIT
02

브로커도 DB와
원자적이지 않다

Kafka와 RabbitMQ에 장애를 주입해 한쪽에만 데이터가 남는 이중 쓰기를 재현했습니다.

2 FAILURE WINDOWS
03

30,000건,
중복 0건

4개 Worker, 1,000건, 30회 반복에서 중복 선점·처리·미처리 0건을 확인했습니다.

SKIP LOCKED
04

At-least-once

상태 가드와 중복 방지 키, 재시도와 실패 종료 조건으로 전달 의미를 명확히 했습니다.

HONEST GUARANTEE

Every failure
has a state.

PROCESSING 고착 복구와 재시도 상태를 명시해 처리되지 않은 작업을 추적할 수 있게 했습니다.

01

PENDING

발송 대기

→
02

PROCESSING

atomic claim

→
03

PROCESSED

Delivery 생성

↘
04

RETRY_PENDING

일시 실패

4 WORKERS / 30 ROUNDS→30,000 / 0 DUPLICATES