Aplicaciones Reactivas

Vivimos en un entorno tremendamente cambiante donde los requerimientos de las aplicaciones varían constantemente.

Hace unos pocos años una aplicación grande tenía decenas de servidores, con tiempos de respuesta en segundos y gigabytes de datos. Hoy en día las aplicaciones están desplegados en todo tipo de dispositivos, desde móviles a clusters basados ​​en la nube que corren con miles de procesadores multinúcleo. En el lado del cliente, la rápida proliferación de los teléfonos inteligentes y el auge de la llamada “Internet de las cosas” incrementan el número de usuarios concurrentes y se espera que los sistemas sean capaces de soportarlo y manejarlo adecuadamente.

Los usuarios en la actualidad esperan que los tiempos de respuesta sean de milisegundos o microsegundos y de un 100% de disponibilidad. La necesidad de almacenamiento de datos está creciendo considerablemente expandiéndose hacia los petabytes

En este contexto se espera que nuestras aplicaciones sean “reactivas”, es decir tener componentes activos y listos para recibir eventos.

Las características de una aplicación reactiva son :

  • Dirigida por Eventos : Permitir el procesamiento paralelo , asíncrono de mensajes y eventos con facilidad .
  • Escalable : Poder escalar dentro y a través de los nodos elásticamente para proporcionar potencia de computación bajo demanda cuando sea necesario .
  • Resistente : La capacidad para recuperarse y repararse a sí mismo de forma automática con el fin de asegurar la continuidad aplicación sin fallas.
  • Sensible : Respuestas en tiempo real que proporcionen información instantánea sobre la base de las interacciones del usuario y de otros estímulos.

Es evidente que debemos considerar usar nuevas tecnologías y nuevos paradigmas de programación para poder satisfacer estos niveles de sofisticación para poder tener aplicaciones reactivas.

En este escenario los lenguajes de programación funcional han empezado a tener auge, debido a que pueden ayudarnos a satisfacer dichos requerimientos. Entre los más conocidos lenguajes de programación funcionales tenemos a: Scheme, Erlang, Haskell, Scala, Closure, F#, Lisp, entre otros.

Por lo pronto ya empecé a ver un par de ellos, espero traerles mis experiencias en los próximos posts.

Más información

benjamin
Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT. Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

Leave a Comment

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.