멱등성·장애 복구·확장성 세 가지를 핵심 설계 원칙으로 제시
분산 워크플로 엔진을 처음부터 설계한다면 제가 가장 먼저 고려할 요소는 멱등성(Idempotency)입니다. 분산 환경에서는 네트워크 실패로 같은 태스크가 재실행되는 경우가 생기는데, 재실행해도 결과가 같아야 안전하기 때문입니다. 다음은 장애 대응과 재시도 전략입니다. 태스크 실패 시 어떤 조건에서 재시도할지, 최대 몇 번까지 허용할지, 실패 시 큐에서 어떻게 처리할지를 설계 단계에서 정의해야 운영 중 장애가 번지지 않습니다. 개인 프로젝트에서 Celery로 비동기 태스크를 구성했을 때 재시도 정책이 없어서 한 노드 장애가 전체 큐를 막는 경험을 했습니다. 확장성 측면에서는 태스크 스케줄링과 워커 풀이 분리된 구조가 부하에 따라 워커를 독립적으로 늘릴 수 있어서 중요합니다. 성능 보장은 태스크 우선순위 큐와 리소스 격리로 크리티컬 태스크가 배치 작업에 밀리지 않도록 하는 구조가 필요합니다. 아직 실무 수준의 대규모 경험은 없지만, 설계 원칙을 먼저 이해하고 시작하는 방향으로 공부하고 있습니다.