피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Step Functions 모놀리스 해결을 위한 Domain 기반 Workflow 분해 전략
Serverless Workflow Decomposition: When a Step Function Becomes a Monolith
AI 요약
Context
단일 Step Functions Workflow에 비즈니스 로직이 집중되며 ASL 정의가 비대해지는 Workflow Sprawl 현상 발생. 100개 이상의 State와 복잡한 Choice 분기로 인해 배포 영향 범위가 확대되고 도메인 간 강한 결합도로 인한 유지보수 효율 저하 및 테스트 복잡성 증가.
Technical Solution
- Parent-Child Workflow 패턴 도입을 통한 오케스트레이션 결정과 세부 도메인 로직의 물리적 분리
- 도메인 경계(Payments, Inventory 등)에 따른 하위 프로세스 추출로 개별 Workflow의 책임 범위 제한
- 전체 Payload 전달 방식에서 명시적 Input/Output Contract 정의 방식으로 전환하여 데이터 결합도 해소
- Immutable Version과 Alias를 활용한 버전 관리 전략 수립으로 롤백 안전성 확보 및 독립적 배포 체계 구축
- 동기적 체크아웃과 비동기적 풀필먼트 등 실행 프로필(Execution Profile)에 따른 Workflow 분리를 통한 리소스 최적화
실천 포인트
- 단일 Workflow 내에 서로 다른 도메인(결제, 재고 등)의 로직이 혼재되어 있는가? - 작은 변경사항이 전체 파이프라인의 엔드투엔드 재테스트를 강제하는가? - Payload에 '혹시 몰라' 포함된 불필요한 필드가 많아 JSONPath 참조가 복잡한가? - 유사한 State 집합(검증, 승인 등)이 여러 Workflow에 복사-붙여넣기로 중복 존재하는가?