핵심 요약
넷플릭스가 Maestro 엔진의 내부 흐름 엔진을 재작성해 성능을 100배 이상 개선하고 오버헤드를 초 단위에서 밀리초로 대폭 감소시켰습니다. 이 개선은 Maestro 오픈 소스 프로젝트에 반영되었습니다.
구현 방법
- 새로운 경량 내부 흐름 엔진 도입, 메모리 기반 상태 관리로 지연 제거
- 단일 워커 실행 보장 및 데이터베이스와의 일관성 유지를 위한 강력한 제어 구조 도입
- 외부 큐를 대체한 내부 큐로 정확히 한 번 게시/최소 한 번 전달 보장 구현
- Flow 그룹 도입으로 흐름을 그룹 단위로 소유해 수평 확장성 유지
- Flow 그룹 Actor 및 자식 Flow Actor를 통한 상태 관리로 장애 시 재할당 가능
- Stateless Worker 모델에서 Stateful Actor 모델로 전환
주요 결과
- 성능 100배 개선, 오버헤드를 초에서 밀리초로 대폭 감소
- 메모리 기반 상태로 아키텍처 단순화 및 데이터베이스 의존 최소화
- Flow 그룹 도입으로 노드 장애 시 재할당이 원활해지는 확장성 확보
- 내부 큐를 활용해 정확히 한 번 게시 및 최소 한 번 전달 보장
