The next generation of applications will be reactive and cognitive — but they’ll also need to process real-time data. There are three main characteristics that will form the base for any application design pattern over the next decade:
  1. Reactive: Applications are moving toward a microservices architecture, where scalability, resiliency, responsiveness, and being message-driven are key traits. For more information, I encourage you to read the Reactive Manifesto.
  2. Cognitive: Applications are embedded with logic to make intelligent decisions and can leverage machine-learning capabilities to provide cognitive insights.
  3. Real-time data-driven: Applications are required to process vast streams of data in real time and produce actionable insights.
How do we tackle these growing requirements for the modern application stack? With partnerships like the one between IBM and Lightbend, which brings together the necessary technologies for a modern application stack.

Application stack for the next generation

Scala and Java are at the center of this collaboration. Lightbend invented Scala, which is the most popular open source language for cognitive applications. Scala is an acronym for “Scalable Language.” It is object-oriented and functional. Java™ programming, meanwhile, is a first-class citizen of Lightbend offerings. Java and Scala classes can be freely mixed, even if they reside in different projects. IBM spearheaded an ecosystem of Java developers, which resulted in Eclipse and the subsequent Eclipse Foundation. For years, IBM has supported the 1.2 million developers in the Scala community, including an ongoing collaboration with Lightbend, which has trained hundreds of Scala developers. IBM and Lightbend technologies are coming together to form the base for the next-generation application platform. Reactive microservices Microservices are at the forefront of the application revolution, and combined with reactive capabilities, create a fail-proof application stack. The following technologies will form the core of the partnership around microservices: Akka: A toolkit and runtime for building concurrent and resilient message-driven applications for Java technology and Scala. Akka makes it easier to write correct concurrent and parallel systems by alleviating you from dealing with explicit locking and thread management. Akka is a major component of the IBM Watson™ Data Platform, as well as the Apache OpenWhisk serverless framework. Play: Built on Akka, Play is a web framework that provides predictable and minimal resource consumption (CPU, memory, threads) for highly scalable applications. The article titled “Leverage Watson Java SDK from Play Application” is a good introduction to using the Akka Actor Model within the Play framework to build a cognitive Java application. Lagom: Lagom is a reactive microservices framework. Behind the scenes, the Lagom framework uses the Play Framework, an Akka message-driven runtime, Apache Kafka for decoupling services, Event Sourcing, and Command Query Responsibility Segregation (CQRS) patterns. It also offers ConductR support for monitoring and scaling microservices in the container environment. WebSphere® Liberty: A lightweight open source Java EE application server with fast startup. It includes the complete set of Java EE 7 full platform technologies. Microservice Builder: Microservice Builder provides end-to-end guidance that includes configuration, development, deployment, capacity planning and monitoring for microservices. It is currently focussed towards Java MicroProfile programming model, with Kubernetes as a primary deployment target Cognitive IBM Watson: Watson provides APIs to inject cognitive intelligence into your applications, with capabilities ranging from machine-learning models to chatbots to cognitive insights. The article “Quickly build a Reactive web app with Play and Watson Language Translator” is a good introduction to how Watson cognitive APIs can be used in a reactive web application built using Play. IBM Data Science Experience: This community provides tools and technologies to analyze data using RStudio, Jupyter, and Python in a configured, collaborative environment that includes IBM value-adds, such as managed Spark. Spark Machine Leaning (MLlib): Spark provides this scalable machine-learning library to build and deploy scale-out machine-learning applications. Scala is the language of choice for interacting with Spark, and combined with MLlib and Akka, delivers a robust machine-learning framework. Data streaming Akka Streams: The Akka Streams API provides efficient stream processing setups that can be executed with bounded resource usage. Following the Reactive Streams initiative, of which Akka is a founding member, streams are able to slow down producers if the consumers cannot keep up. This feature is at the core of Akka Streams. Spark Streaming: Part of Apache Spark, Spark Streaming is an extension of the core Spark API that lets data scientists process real-time data from various sources like Apache Kafka, Flume, and TCP sockets.

Integration and flexibility is key

These technologies need to cohesively come together to deliver the next generation of applications. These applications must be able to be run on-premises or in the cloud using container orchestrators. They should also work with a variety of data sources, including Apache Cassandra and Hadoop. Together, IBM and Lightbend are paving the way for an application platform for the next generation of apps – apps that are reactive, cognitive, and capable of processing real-time data. To learn more about this partnership, please join our Why IBM + Lightbend webinar on July 12.

1 comment on"The next generation of applications: Reactive, cognitive, and real-time data-driven"

  1. Hamid Sultan October 22, 2017

    Very good source of Actor Model and it’s implementation strategy

Join The Discussion

Your email address will not be published. Required fields are marked *