기타 IT 지식

Hot Stream vs Cold Stream

whjungdev 2024. 10. 15. 17:06

Hot Stream

  1. 동작 방식:
    • Hot stream은 데이터 생산이 구독자와 독립적으로 이루어집니다. 즉, 데이터가 생성되고 방출되는 과정이 구독 여부와 관계없이 계속 진행됩니다.
  2. 구독자의 존재 여부:
    • 구독자가 없더라도 데이터를 계속 방출합니다. 이로 인해 구독자가 구독을 시작한 시점에 이미 방출된 데이터는 받지 못할 수 있습니다.
  3. 예시:
    • SharedFlow, StateFlow, Channel 등. 예를 들어, 이벤트 기반 시스템에서 발생하는 이벤트는 여러 소비자에게 동시에 전달되며, 소비자가 구독하기 전에 발생한 이벤트는 소비되지 않습니다.
  4. 상태 유지:
    • 일반적으로 마지막 상태나 값을 유지하여 새로운 구독자에게 제공할 수 있는 기능이 있습니다.

Cold Stream

  1. 동작 방식:
    • Cold stream은 구독자가 있을 때만 데이터를 생산하고 방출합니다. 즉, 구독자가 구독을 시작해야 데이터 생성이 이루어집니다.
  2. 구독자의 존재 여부:
    • 구독자가 없으면 데이터가 생성되지 않으며, 구독자가 생기면 처음부터 데이터를 방출합니다. 따라서 모든 구독자는 동일한 데이터 시퀀스를 경험하게 됩니다.
  3. 예시:
    • 일반적인 Flow, Sequence 등. 예를 들어, 데이터베이스에서 쿼리를 실행하거나 API 요청을 하는 경우, 구독자가 있을 때만 데이터 요청이 발생합니다.
  4. 상태 유지:
    • 상태를 유지하지 않으며, 구독자가 구독하기 시작하면 처음부터 데이터를 방출합니다.

요약

  Hot Stream Cold Stream
데이터 방출 방식 구독자와 독립적으로 계속 방출 구독자가 있을 때만 방출
구독자 상태 구독자가 없어도 방출 구독자가 없으면 방출 없음
예시 SharedFlow, StateFlow Flow, Sequence
상태 유지 마지막 상태를 유지 가능 상태를 유지하지 않음

 

출처 : ChatGPT