Existe en la red una preocupación para que la web sea un “lugar mejor”. No solo para los usuarios, si no, también para los mismos desarrolladores y profesionales relacionados con el mundo del Internet; una preocupación en ser reactivo.
Es decir, una necesidad en crear aplicaciones que satisfagan la demanda de hoy y estas aplicaciones se les llaman "Aplicaciones Reactivas". Son aplicaciones que permiten que los desarrolladores puedan construir sistemas que sean dirigidos por eventos, escalables, resilientes y responsivos. Para ello se redactó el Manifiesto Reactivo que describe las características para ser reactivo.
Aplicaciones Reactivas
Reactivo es algo que responde con “facilidad a un estímulo”. Los sistemas reactivos reaccionan a los eventos (dirigidos por eventos), reaccionan a la carga (escalables), reaccionan a los fallos y errores (son resilientes) y reaccionan a los usuarios (son responsivos).
Dirigidas por eventos
Aplicaciones que reaccionan a los eventos son aplicaciones que ofrecen flexibilidad y ayudan a reducir los costes de mantenimiento, pues su diseño se basa en una comunicación asíncrona y donde el interfaz tiene la posibilidad de centrarse en el contenido de la comunicación. El destinatario y el remitente son implementados si tener en cuenta los detalles de la propagación del evento. El destinatario se activa en el momento en que un mensaje es recibido, o ocurre un evento. Esto permite un uso eficiente de los recursos y permite que un número importante de destinatarios puedan compartir un único subproceso de hardware. Sistemas dirigidos por eventos tienden a basarse en el push, en lugar del pull.
Escalables
Una aplicación escalable tiene la capacidad de expandirse de acuerdo con su utilización. Esto se hace añadiendo “elasticidad” a la misma. Entiéndase elasticidad por “opción de añadir, o remover nodes” según petición. La escalabilidad permite minimizar los costes de tener aplicaciones en la nube y gestionar los riscos: Tener pocos recursos de hardware lleva a la pérdida de clientes, tener demasiados recursos de hardaware puede resultar en gastos innecesarios.
Resilientes
Que nuestra aplicación esté inactiva puede ser un problema importante para nuestro negocio. En el momento que el sistema simplemente deja de funcionar, ganamos clientes descontentos y mala reputación. Se utilizan diferentes técnicas para intentar resolver este problema, pero algunos son demasiado caros y peligrosos.
En una aplicación reactiva la resiliencia es parte del diseño desde el inicio. De esta forma, estando los errores y fallos en el modelo de programación, es posible reaccionar a ellos y solucionarlos. Las aplicaciones reactivas son altamente tolerantes a los fallos y son capaces de repararse a ellas mismas en el tiempo de ejecución.
Responsivas
Responsivo es algo que “responde y reacciona apropiadamente.” Es importante recordar que esta palabra no define la misma que se utiliza en el Diseño Web Responsivo. Las aplicaciones responsivas son colaborativas, atractivas, ricas y se ejecutan en tiempo real. En ellas, los negocios se preocupan por providenciar experiencias interactivas a sus usuarios. Esto crea un sentido de conexión, de internet, verdad? Un ejemplo puede ser el Google Docs, que permite que los usuarios editen documentos y colaboren en tiempo real.
Conclusión
Las cuatro cualidades de las aplicaciones reactivas forman un todo, pues están interconectadas entre ellas y se puede decir y/o discutir mucho más sobre ellas. Las aplicaciones reactivas quieren ser un abordaje equilibrado para satisfacer la demanda actual, en el desarrollo de software. La idea de futuro es que los sistemas desarrollados vayan ganando esta conciencia de construir sobre una base “dirigida por eventos”, providenciando herramientas necesarias para asegurar la escalabilidad y resiliencia para finalmente soportar interacciones responsivas. Por eso yo ya he firmado el manifiesto. ¿Y tu?
Fuentes: