stream operation

for await 종료 조건

비동기 값의 타입이 맞아도 생산자 중단, 오류 전파, 리소스 정리 계약이 없으면 장시간 실행 흐름에서 누수가 생긴다.

source

생산자 속도

API, 파일, 큐가 값을 얼마나 자주 밀어내는지 확인하고 소비자가 따라갈 수 있는 단위로 끊는다.

backpressure 기준
adapter

타입 변환 경계

AsyncIterable<T>로 감싸기 전에 원본 오류와 완료 신호를 같은 형태로 맞춘다.

next 결과 정규화
루프

소비자 중단

조건 만족, 사용자 취소, 라우트 이동처럼 루프가 일찍 끝나는 경우를 먼저 테스트한다.

break와 throw 경로
cleanup

리소스 반환

구독, 파일 핸들, 타이머, 네트워크 연결은 finally 또는 return()으로 닫는다.

누수 방지