Backfill 은 미래의 본인이 설계 감사할 거
3주간 metric silent 하게 corrupt 한 버그 발견하는 날, 두 옵션: 코드 forward 로 fix, 또는 코드 fix 그리고 지난 3주에 대해 corrected 파이프라인 다시 돌리기. 두 번째가 backfill, 그리고 파이프라인이 그 위해 설계됐을 때만 작동.
파이프라인을 backfillable 로 만드는 것
- Window 로 parameterize. 파이프라인이 logical date / window 를 입력으로 받음 —
NOW()아니라. - Idempotent write. Window 다시 돌리면 replace, append 아니라.
- 숨은 state 없음. 명시적으로 override 가능한 watermark 없이 "마지막 run 이후 새 row 만" 안 함.
- Source 데이터 reachable. Upstream API 또는 warehouse 가 historical window 서빙 가능 — 버그 후 아니라 이전 에 확인.
Time-travel read
Modern lakehouse 포맷 (Iceberg, Delta Lake) 이 time-travel read 지원 — "2026-04-01 시점 그대로 이 테이블 줘." Backfill 과 별도 아이디어 — backfill 은 이력 다시 쓰는 거, time-travel 은 과거 그대로 읽는 거. 둘이 함께 "버그 2주 전에 fix 됐다면 어제 리포트가 뭐 보여줬을까?" 답 가능 — stakeholder 한테 변경 설명 시 무가.