By Joe O’Reilly
An intelligent and interactive application experience is a common requirement in our modern world, quickly adapting how users, customers, or partners interact with enterprise organizations and their products. The industry demands modern technologies to ingest, transfer and analyze vast amounts of data for decision-making purposes. However, the creation and delivery of these intelligent and stream-based applications requires a robust streaming platform that can support the ingesting and processing of large amounts of data at a rapid pace.
Investing in streams processing technology enables organizations to make data-driven business decisions in near-real time, positioning them to instantly respond to changing market needs and supporting customer experiences. Within those macro-level challenges, a streams processing technology can support developers to overcome common hurdles such as batch data processing, application modernization, and managing event-driven architectures.
Batch data processing
In a world where customers expect real-time digital experiences, batch data processing limitations can prevent an application from succeeding before it’s even launched. And yet, batch data can be found in enterprise applications everywhere, even as real-time data processing becomes critical to provide enhanced customer experiences. Batch data processing offers the ability to store vast amounts of data, but it fails to provide support for real-time scenarios where analyzing data in real-time or in motion became a requirement, as actions and decision-making need to happen almost immediately. The value of data increases when it is used immediately for decision-making. This is where stream processing became the preferred framework for ingesting, processing, and transforming flows of data, better known as data streams.
Real-time stream processing is an architectural pattern that supports low overhead, horizontal scalability, and high-rate message delivery. This pattern allows storing data on streaming pipelines that are responsible for making the data available to any application or data source at any point in time. Data can be aggregated, transformed, or processed before an application consumes the data. Application consumers can use the data for notifications, alerts, or further interpreting to take action.
Application modernization
Enterprises are moving to a microservice-based approach for applications, which is a significant improvement over the monolithic applications of the past, providing the agility, scalability, and autonomy that comes with breaking large scale projects into smaller components. The challenge is how to connect microservices applications without disrupting current systems performance and communication, while bringing the agility and autonomy that are motivating microservices adoption. Selecting a streams processing technology that can act as a common communication layer for both old and new systems while facilitating the data movement between microservices, applications and systems is key.
Streams processing technologies enable streaming pipelines as the communication channel between legacy and microservices applications and between multiple microservices applications. Streaming pipelines enable standardization in the way applications communicate between themselves eliminating potential data conflicts, reducing complex dependencies, and allowing for optimization and scalability. Streaming pipelines can become the immutable communication pipeline during the application modernization process.
Managing event-driven architectures
As enterprise organizations build for digital experiences, they face new challenges in deploying and scaling distributed systems that can ingest large amounts of data at rapid pace. The expectation is for developer teams to rapidly respond to change by adapting business applications, delivering data faster, and scaling up and down based on user demands. However, the traditional integration approaches cannot support all the new scenarios and requirements which have emerged from deploying digital experiences.
Event-driven architectures are the pattern of choice when looking to reduce traditional client-server communications and adopt loosely-coupled microservices applications. Transitioning to an event-driven approach allows organizations to reduce dependencies between applications, and allows more flexible and durable communication. Streams processing technologies are particularly good at supporting event-driven use cases since it enables organizations to design architectures for capturing, ingesting, and streaming large quantities of events with low overhead, resulting in faster data delivery.
The future of streams processing
Investing in a stream processing technology can support the creation of action-oriented, adaptive, and responsive applications that provide valuable information and enable the completion of tasks more quickly and seamlessly. Stream processing technologies also enable the collection of large amounts of data for aggregation, transformation, and analysis.
At Red Hat, we use Apache Kafka (found within our Red Hat OpenShift Streams for Apache Kafka solution), a distributed streams processing platform that uses the publish/subscribe method to move data between microservices, cloud-native or traditional applications and other systems. The solution differentiates itself from others in the market due to its high throughput and low latency when moving data streams. This higher throughput makes the process feel like real-time message delivery, while rapidly moving large volumes of data allows for low latency. Additionally, Apache Kafka is also a great solution for the edge, as it delivers the same benefits across your entire hybrid cloud environment.
No matter which platform you choose, enterprise organizations should consider investing in a streams processing platform to drive innovation, agility, and ultimately better business outcomes.
##
ABOUT THE AUTHOR
Joe O’Reilly, Director of Product Management at Red Hat
Joe O’Reilly (Director, Product Management) is a technology specialist with over 20 years of experience in the software industry and currently heads up Red Hat Cloud Application Services Product Management with a focus on Data streaming & eventing Infrastructure, Application Connectivity and related Developer Services, Joe has previously held a number of senior management and principal technical positions within both large multinational organizations and highly successful start-ups. Joe has a proven track record of technical leadership in the delivery of complex large-scale projects, covering solution definition, architecture, design and implementation.





