Reactive Streams는 비동기 데이터 처리를 위한 표준으로 다양한 장점을 제공합니다:

  1. 비동기 처리 및 백프레셔(Back-Pressure): Reactive Streams는 데이터 스트림을 비동기적으로 처리하면서, 소비자(Consumer)가 처리할 수 있는 속도를 초과하지 않도록 제어합니다. 이를 통해 시스템의 과부하를 방지하고, 메모리 사용을 최적화합니다.

  2. 확장성과 자원 효율성: 비동기 처리는 시스템 자원을 보다 효율적으로 사용할 수 있게 해주며, 이를 통해 더 많은 작업을 동시에 처리할 수 있습니다. 이는 특히 고성능 애플리케이션 또는 마이크로서비스 아키텍처에서 중요합니다.

  3. 오류 처리: Reactive Streams는 오류를 스트림의 일부로 취급하여, 예외 상황을 보다 우아하게 처리할 수 있습니다. 오류가 발생하면, 스트림은 해당 오류를 전파하고 적절히 반응할 수 있습니다.

  4. 함수형 프로그래밍과의 연계: Reactive Streams는 함수형 프로그래밍 패러다임과 잘 어울립니다. 불변성, 상태 없음, 높은 수준의 추상화 등 함수형 프로그래밍의 특징들은 Reactive 프로그래밍과 잘 맞아 떨어집니다.

  5. 다양한 언어 및 프레임워크 지원: Reactive Streams는 Java, Scala, JavaScript 등 다양한 프로그래밍 언어 및 프레임워크에서 지원되며, 이를 통해 여러 환경에서 동일한 비동기 처리 패턴을 적용할 수 있습니다.

이러한 특징들은 Reactive Streams를 현대 애플리케이션 개발, 특히 대규모 데이터 처리와 높은 동시성을 요구하는 시나리오에서 매우 유용하게 만듭니다.



AkkaStream을 베이스로 주변 Streams기술을 함께 연구하는곳으로 

액터모델을 이해하고 도입하는것이 아니라고 하면AKKA를 항상먼저 채택하는것을 권장하지 않습니다.

ReactiveStream을 준수하는 모든 구현체는 상호 연결이 가능하며 구현레벨에 이용할 코어 스트림은 다음과 같이 채택해서

일관성있는 개발로 구성 하는것이 권장됩니다.



이 활동을 통해 처리할수 있는개발패턴

아래와 같은 기능을 멀티스레드로 풀어낼수 있다고하면 Stream(AKKA)개념을 도입할 필요는 없습니다.



참고링크