리액티브 시스템이란
클라이언트에 반응을 잘한다.
높은 응답성을 가지며, 메세지 기반으로 탄력적이고 유연해야한다
![Untitled](https://prod-files-secure.s3.us-west-2.amazonaws.com/594703e8-4360-4093-9a15-dcdcf6e81d14/7a1b671f-7077-49fa-b329-7a5767901836/Untitled.png)
- Responsive(응답성) : 시스템이 가능한 즉각적으로 반응한다
- Resilient(회복성) : 시스템이 장애가 났을때 응답성을 유지한다.
- Elastic(탄력성) : 워크로드(작업량)가 다양하게 변화할 경우에도 응답성을 유지한다.
- Message Driven : 비동기 메세지를 주고받음으로 losse coupling, isolation, location transparency를 보장한다.
리액티브 프로그래밍
- 데이터 소스에 변경이 있을때마다 데이터를 전파
- 선언형 프로그래밍 패러다임 : 실행할 동작을 구체적으로 명시하지 않고 목표만 정의
- 함수형 프로그래밍 기법 사용
리액티브 스트림즈
리액티브 프로그래밍을 표준화 한 명세
https://souljit2.tistory.com/78
- publisher
- subscriber
- subscription
- processor
Reactor는 리액티브 스트림즈를 구현한 구현