피드로 돌아가기
How I Built a Multi-Level Approval Process (L1, L2, L3) with Locking, Emails, and Escalation — A Developer’s Story
Dev.toDev.to
Backend

State-based Locking과 Escalation Rule 기반의 다단계 승인 워크플로우 설계

How I Built a Multi-Level Approval Process (L1, L2, L3) with Locking, Emails, and Escalation — A Developer’s Story

Peter Parser2026년 5월 1일5intermediate

Context

승인 프로세스 부재로 인한 데이터 무결성 결여 및 결정 지연 문제 발생. 특히 제출 후 임의 수정 가능성과 승인자 병목 현상으로 인해 재무 데이터의 신뢰도가 저하된 상태임.

Technical Solution

  • State-based Record Locking 도입을 통한 제출 후 Read-only 상태 강제 및 데이터 무결성 확보
  • L1(부서장) $\rightarrow$ L2(COO) $\rightarrow$ L3(CFO)로 이어지는 Role-based 계층 구조 설계
  • ProcessInstance 및 ProcessWorkItem 객체 활용으로 전체 프로세스 상태 관리 및 개별 단계의 Audit Trail 구축
  • Time-based Escalation Rule 설정을 통한 48시간/24시간 기준 자동 재할당 및 알림 최적화
  • Trigger-based Email 시스템 구축을 통한 단계별 결정 트리거 제공 및 가시성 확보
  • Draft $\rightarrow$ Submitted $\rightarrow$ Final Approved로 이어지는 정교한 Status Lifecycle 설계

1. 데이터 무결성을 위해 승인 요청 시점부터 최종 결정 시점까지 레코드 수정 권한을 제한했는가?

2. 단순 알림을 넘어 특정 시간 경과 시 자동 재할당되는 Escalation 메커니즘이 포함되었는가?

3. 개별 승인 단계의 이력(Who, When, Why)을 추적할 수 있는 Audit Log 구조가 설계되었는가?

4. 상태 변경에 따른 필드 업데이트 로직이 원자적(Atomic)으로 처리되는가?

원문 읽기