programación reactiva en java | Jose Luis Bugarin

La programación reactiva no se invento recién (es un enfoque que tiene sus años). Se introdujo en la versión 9 de java. Si se te viene a la mente la programación reactiva, debes de pensar en:

Consiste en centrarse más en cómo fluyen los datos y menos en cómo la implementación maneja el flujo de datos

La programación reactiva es un paradigma de programación similar a la programación orientada a objetos y la programación funcional.

Otra consideración adicional, es que necesitas conocer como diseñar un sistema reactivo (una pequeña diferencia a la programación reactiva). Existe un manifiesto sobre sistemas reactivos: https://www.reactivemanifesto.org/es

en donde extraigo el fragmento:

Creemos se necesita un enfoque coherente para la arquitectura de sistemas, y creemos que todos los aspectos necesarios ya han sido identificados por separado: queremos sistemas Responsivos, Resilientes, Elásticos y Orientados a Mensajes. Nosotros les llamamos Sistemas Reactivos.

Los sistemas construidos como Sistemas Reactivos son más flexibles, con bajo acoplamiento y escalables. Esto hace que sean más fáciles de desarrollar y abiertos al cambio. Son significativamente más tolerantes a fallos y cuando fallan responden con elegancia y no con un desastre. Los Sistemas Reactivos son altamente responsivos, dando a los usuarios un feedback efectivo e interactivo.

Los flujos reactivos (react streams) comenzaron como una iniciativa para proporcionar un estándar de manejo de flujos de datos en un modo asincrónico mediante la regulación del empuje de los datos mediante back-pressure (contrapresión). El sitio original del proyecto es http://www.reactive-streams.org/.

En java, el paquete que da soporte a los flujos reactivos es java.util.concurrent a partir del jdk 9

Java, no es un lenguaje de programación reactivo. Sin embargo, esto no significa que no podamos crear programas reactivos en Java.

Hay librerías que admiten diferentes enfoques de programación reactiva. Debo mencionar que el framework Akka y ReactiveX también existen para otros lenguajes de programación. Con Java 9, el JDK comienza a admitir programación reactiva, proporcionando algunas clases e interfaces para este propósito. Nos centraremos en estas características ahora.

El JDK contiene la clase java.util.concurrent.Flow, que contiene interfaces relacionadas y algunos métodos estáticos para admitir programas controlados por flujo. El modelo que admite esta clase se basa en Publisher, Subscriber y Subscription.

La gran conclusión y lo que te debe de quedar claro es que necesitas conocer sobre:

  • programación reactiva
  • sistemas reactivos
  • flujos de datos (react stream)
  • publicación/suscripción

 

Añadir un comentario

Tu dirección de correo electrónico no será publicada.