Реакти́вні пото́ки () — це ініціатива із запровадження стандарту для асинхронної потокової обробки із неблоковним зворотним тискомReactive Streams .
Основним завданням реактивних потоків є керування обміном потоковими даними через асинхронну межу — таку, як передача елементів до іншої нитки або пулу ниток — забезпечуючи, що одержуюча сторона не змушується буферизувати необмежену кількість даних. Іншими словами, зворотній тиск є невід’ємною частиною цієї моделі щоби дозволити чергам, які обслуговують взаємодію ниток бути обмеженими.
Задумано дозволити створення багатьох сумісних реалізацій, які в силу дотримання правил стандарту зможуть безпроблемно взаємодіяти, зберігаючи згадані переваги і характеристики вздовж усього графу обробки потоку.
Обсягом стандарту є мінімальний набір інтерфейсів, методів і протоколів, які описують необхідні операції та об'єкти для досягнення асинхронних потоків даних із неблокуючим зворотнім тиском. Предметно-орієнтована мова (DSL) або API цілеспрямовано були залишені за межами стандарту з метою заохочення і дозволу різних реалізацій.
Ініціатива реактивних потоків почалася наприкінці 2013 року між інженерами Netflix, Pivotal і Typesafe. Найперші обговорення відбулися у 2013 році між командами Play і Akka у Typesafe.A Journey into Reactive Streams Reactive Streams 1.0.0 interview Typesafe є одним із основних розробників реактивних потоків. Інші учасники включають Red Hat, Oracle, Twitter і spray.io Ведеться робота, щоб зробити реалізацію реактивних потоків на Java частиною Java 9: Даг Лі, лідер JSR 166, запропонувавjdk9 Candidate classes Flow and SubmissionPublisher новий клас Flowjava.util.concurrent.Flow який реалізує інтерфейси описані у стандарті Реактивних потоків.JEP 266: More Concurrency Updates
30 квітня 2015 вийшла версія 1.0.0 реактивних потоків для JVM,Reactive Streams Releases First Stable Version for JVM Reactive Streams 1.0.0 – a new standard in reactive data processing Reactive Streams 1.0.0 is here! включно із Java API,Java API текстовою специфікацією, TCK та прикладами реалізації. Існує ряд сумісних реалізацій, які перевірені за допомогою TCK на відповідність стандарту, перелічені у алфавітному порядку: Akka Streams MongoDB Ratpack Reactive Rabbit — драйвер для RabbitMQ/AMQP Spring і Pivotal Reactor Netflix RxJava Slick 3.0. Vert.x 3.0 Інші реалізації включають Cassandra, Elasticsearch, Apache Kafka, Parallel Universe Quasar, Play Framework.
Примітки
Ланки Ця стаття включає текст із http://www.reactive-streams.org/ , опублікований під ліцензією CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.