웹 요청은 실패하면 다시 부르면 됩니다. 통화는 그렇지 않습니다. 상대는 지금 수화기를 들고 있고, 파이프라인 어딘가가 예외를 던지는 순간 그 사람에게 남는 것은 침묵입니다. 그래서 파이프라인을 정상 동작 아니면 오류가 아니라, 여러 단계로 낮아질 수 있는 시스템으로 설계했습니다.
플래그는 등급입니다
파이프라인에는 100개가 넘는 기능 플래그가 있습니다. 대부분은 기능을 켜고 끄기 위한 것이 아니라, 상황이 나빠졌을 때 어느 단계까지 내려갈지를 정하기 위한 것입니다. 통화를 끊는 대신 해당 기능을 한 단계 낮추고 통화를 이어가는 쪽이 기본값입니다.
스위치로 쓰면
켜져 있거나 꺼져 있거나 — 문제가 생기면 통화가 끝납니다
등급으로 쓰면
한 단계 낮춘 상태로 계속 — 통화는 이어집니다
약 120개의 기능 플래그로, 상황이 불확실할 때 파이프라인이 해당 기능을 한 단계 낮춰 동작합니다. 위험한 경로는 기본적으로 꺼져 있고, 시스템은 통화를 끝내는 대신 이어갑니다.
중단 대신 저하 — 실시간 음성 파이프라인의 기본 동작
기본은 꺼짐
관측 가능해진 뒤에 올립니다
새 기능은 켜진 상태로 태어나지 않습니다. 꺼진 상태로 들어와, 통화마다 어떤 신호가 남는지 확인할 수 있게 된 뒤에 올라갑니다. 이 순서를 뒤집으면 무엇이 잘못되었는지 알기 전에 이미 통화에 영향을 준 상태가 됩니다.
모르면 아니오
가장 중요한 규칙은 이것입니다. 확인되지 않은 상태는 낙관적으로 해석하지 않습니다. 어떤 상태를 검증할 수 없으면 그 경로는 페일클로즈로 닫힙니다. 프로덕션으로 가는 유일한 관문은 사람이며, 가드 래퍼가 운영 중인 함수를 떨어뜨릴 배포를 거부합니다.
꺼짐
코드에는 있지만 어떤 통화에도 영향을 주지 않습니다
관측
신호가 남기 시작하고, 무엇이 일어나는지 보입니다
부분 개방
좁은 범위에서 켜고 실제 통화에서 확인합니다
기본값
저하 경로를 유지한 채 기본 동작이 됩니다

단계적으로 여는 순서
플래그가 등급이라는 말은 롤아웃도 등급이라는 뜻입니다. 아래 순서는 저희가 실제로 밟는 순서이고, 각 단계에서 돌아갈 수 있다는 점이 핵심입니다.
이어서 볼 것
실패를 다루는 쪽과, 통화 흐름 자체를 준비하는 쪽으로 이어집니다.