피드로 돌아가기
Dev.toBackend
원문 읽기
State Machine 기반 설계로 폼 제출 워크플로우의 운영 부채 해결
Designing Post-Submit Form Workflows as a State Machine
AI 요약
Context
단순한 데이터 저장 및 알림 발송 중심의 폼 처리 로직으로 인한 상태 추적 불가능 및 중복 알림 발생 문제 분석. 제출 완료를 단순 성공/실패의 이진 상태로 처리하여 발생하는 운영 가시성 결여와 시스템 불안정성을 핵심 한계로 식별.
Technical Solution
- DB Insert를 최우선 Critical Path로 설정하여 사이드 이펙트와 무관한 데이터 영속성 보장
- ResponseStatus, AcknowledgementState, NotificationState 등 도메인별 독립적 State Machine 도입을 통한 상태 세분화
- Operation Key 기반의 Idempotency 메커니즘을 적용하여 재시도 시 중복 실행 방지
- '저장 -> 확인 화면 반환 -> 비동기 후속 작업 수행' 순의 파이프라인 설계를 통한 사용자 경험 최적화
- 제외(Excluded) 처리 시 삭제 대신 라벨링 방식을 채택하여 데이터 무결성 유지
실천 포인트
- 모든 사이드 이펙트에 Idempotency Key 적용 여부 검토 - 사용자 응답 저장과 외부 API 호출(Slack, Email)의 실행 시점 분리 - 비즈니스 상태(Status)와 알림 상태(Notification)를 별도 필드로 관리 - 실패한 작업의 안전한 재시도를 위한 Operation Log 테이블 구축