리액티브 스트림은 리액티브 프로그래밍
을 위한 명세이다. 비즈니스 시스템 개발자는 리액티브 스트림에 정의된 인터페이스를 구현하면, 리액티브 프로그래밍을 구현할 수 있다.
리액티브 스트림의 인터페이스는 다음과 같다.
아래는 리액티브 스트림에 정의되어있는 코드이다.
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {}
public interface Publisher<T> {
public void subscribe(Subscriber<? super T> s);
}
public interface Subscriber<T> {
public void onSubscribe(Subscription s);
public void onNext(T t);
public void onError(Throwable t);
public void onComplete();
}
public interface Subscription {
public void request(long n);
public void cancel();
}
→ 리액티브 스트림은 명세를 정의할 뿐 실제로 구현체를 만들어 사용해야한다.
위 명세를 보면 알겠지만, 리액티브 스트림의 기본적 흐름은 다음과 같다.