κΈ΄ μž‘μ—…, 승인 λŒ€κΈ°, μ™ΈλΆ€ μž₯μ• κ°€ λΌμ–΄λ“œλŠ” μˆœκ°„μ—λŠ” β€œν•œ λ²ˆμ— λλ‚˜λŠ” 싀행” 가정이 κΉ¨μ§‘λ‹ˆλ‹€. Durable Execution은 쀑단 후에도 μ΄μ–΄μ„œ μ§„ν–‰ν•  수 있게 ν•˜λŠ” 운영 μž₯μΉ˜μž…λ‹ˆλ‹€.

AI ν™œμš© μ•ˆλ‚΄: 이 λ¬Έμ„œλŠ” μƒμ„±ν˜• AIλ₯Ό ν™œμš©ν•΄ μž‘μ„±ν–ˆμœΌλ©°, Pydantic AI 곡식 λ¬Έμ„œλ₯Ό 1μ°¨ 좜처둜 κ²€ν† ν•΄ μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

κ³΅μ‹λ¬Έμ„œ 흐름 점검 (κ°œμš” 보완)

  • 흐름: Durable execution κ°œλ…/적용 쑰건 β†’ Prefect/Temporal 톡합 선택 β†’ idempotencyΒ·retryΒ·activity μ„€μ • β†’ κ΄€μΈ‘(Logfire)κ³Ό 운영 배치.
  • 이번 νŽΈμ—μ„œ λΉ μ§€λ©΄ μ•ˆ λ˜λŠ” 포인트:
    • β€œμž₯κΈ° 싀행”과 β€œμž¬μ‹œλ„β€λ₯Ό 뢄리해 μ„€λͺ…ν•œλ‹€(κ°™μ§€ μ•ŠμŒ).
    • μ›Œν¬ν”Œλ‘œ μ—”μ§„ 선택 κΈ°μ€€(νŒ€ μš΄μ˜ν™˜κ²½/μŠ€μΌ€μ€„/μŠΉμΈλŒ€κΈ°)을 κ°œμš”μ— λ„£λŠ”λ‹€.
    • 캐싱·멱등성 κΈ°μ€€ 없이 λ„μž…ν•˜μ§€ μ•Šλ„λ‘ κ²½κ³ λ₯Ό λͺ…μ‹œν•œλ‹€.
  • 곡식 λ¬Έμ„œ 체크 링크:

Durable이 ν•„μš”ν•œ λŒ€ν‘œ 상황

  • 10λΆ„ 이상 κ±Έλ¦¬λŠ” μž₯κΈ° 처리
  • μ‚¬λžŒ 승인(HITL) λŒ€κΈ°
  • μ™ΈλΆ€ API μΌμ‹œ μž₯μ• κ°€ μž¦μ€ μ›Œν¬ν”Œλ‘œμš°

곡식 λ¬Έμ„œ:

flowchart TD
  A[μž‘μ—… μ‹œμž‘] --> B[쀑간 μƒνƒœ μ €μž₯]
  B --> C{μž₯μ• /쀑단?}
  C -->|μ•„λ‹ˆμ˜€| D[λ‹€μŒ 단계 μ§„ν–‰]
  C -->|예| E[볡ꡬ ν›„ 재개]
  E --> D
  D --> F[μ™„λ£Œ]

λ―Έλ‹ˆ 사둀 A: 배치 μž‘μ—…μ΄ 쀑간에 끊기면 μ²˜μŒλΆ€ν„° λ‹€μ‹œ ν•˜λ˜ 문제

쀑간 μƒνƒœ μ €μž₯이 μ—†μ–΄μ„œ μ‹€νŒ¨ν•  λ•Œλ§ˆλ‹€ 전체 μž¬μ‹€ν–‰μ΄ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. Durable λ°©μ‹μœΌλ‘œ 체크포인트λ₯Ό λ‚¨κΈ°μž 볡ꡬ μ‹œκ°„μ΄ λ‹¨μΆ•λμŠ΅λ‹ˆλ‹€.

λ―Έλ‹ˆ 사둀 B: 승인 λŒ€κΈ° 쀑 ν”„λ‘œμ„ΈμŠ€κ°€ νƒ€μž„μ•„μ›ƒλ˜λŠ” 문제

μ‚¬λžŒ μŠΉμΈκΉŒμ§€ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆ μ„Έμ…˜μ΄ λ§Œλ£ŒλμŠ΅λ‹ˆλ‹€. Durable μ›Œν¬ν”Œλ‘œμš°λ‘œ λŒ€κΈ° μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  승인 ν›„ μž¬κ°œν•˜λ„λ‘ λ°”κΏ” ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

싀무 적용 μˆœμ„œ

  1. 쀑단 κ°€λŠ₯ 지점 식별
  2. μž¬κ°œμ— ν•„μš”ν•œ μ΅œμ†Œ μƒνƒœ μ •μ˜
  3. 단계별 idempotency(쀑볡 μ‹€ν–‰ μ•ˆμ „μ„±) 확보
  4. 볡ꡬ μ‹œλ‚˜λ¦¬μ˜€ λ¦¬ν—ˆμ„€

성곡 νŒμ •:

  • μž₯μ•  ν›„ μ²˜μŒλΆ€ν„° μž¬μ‹€ν–‰ λΉ„μœ¨μ΄ μ€„μ—ˆλ‹€
  • 승인 λŒ€κΈ° μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ•ˆμ •μ μœΌλ‘œ μ²˜λ¦¬ν•œλ‹€
  • 볡ꡬ μ ˆμ°¨κ°€ λ¬Έμ„œν™”λ˜μ–΄ μžˆλ‹€

λ‹€μŒ κΈ€