▶Book Description
Apache Apex is a next-generation stream processing framework designed to operate on data at large scale, with minimum latency, maximum reliability, and strict correctness guarantees.
Half of the book consists of Apex applications, showing you key aspects of data processing pipelines such as connectors for sources and sinks, and common data transformations. The other half of the book is evenly split into explaining the Apex framework, and tuning, testing, and scaling Apex applications.
Much of our economic world depends on growing streams of data, such as social media feeds, financial records, data from mobile devices, sensors and machines (the Internet of Things - IoT). The projects in the book show how to process such streams to gain valuable, timely, and actionable insights. Traditional use cases, such as ETL, that currently consume a significant chunk of data engineering resources are also covered.
The final chapter shows you future possibilities emerging in the streaming space, and how Apache Apex can contribute to it.
▶What You Will Learn
⦁ Put together a functioning Apex application from scratch
⦁ Scale an Apex application and configure it for optimal performance
⦁ Understand how to deal with failures via the fault tolerance features of the platform
⦁ Use Apex via other frameworks such as Beam
⦁ Understand the DevOps implications of deploying Apex
▶Key Features
⦁ Get a clear, practical approach to real-time data processing
⦁ Program Apache Apex streaming applications
⦁ This book shows you Apex integration with the open source Big Data ecosystem
▶Who This Book Is For
This book assumes knowledge of application development with Java and familiarity with distributed systems. Familiarity with other real-time streaming frameworks is not required, but some practical experience with other big data processing utilities might be helpful.
▶Style and approach
This book is divided into two major parts: first it explains what Apex is, what its relevant parts are, and how to write well-built Apex applications. The second part is entirely application-driven, walking you through Apex applications of increasing complexity.
▶What this book covers
⦁ Chapter 1, Introduction to Apex, tells us how processing of data-in-motion is realized by Apache Apex. It also gives us a few Apex stream processing use cases and applications, and talks about their value propositions.
⦁ Chapter 2, Getting Started with Application Development, shows us how the Apex development process works from project creation to application deployment; the result is a simple working application.
⦁ Chapter 3, The Apex Library, talks about the Malhar library, which contains functional building blocks for writing real-world Apex applications.
⦁ Chapter 4, Scalability, Low Latency, and Performance, teaches us how Apex can scale and parallize processing, how to achieve dynamic scaling and better resource allocation in general, and why low latency and high throughput are both achievable without trading one off against the other. Operator partitioning and related techniques are central to this endeavor and are shown in practice in a sample application.
⦁ Chapter 5, Fault Tolerance and Reliability, explores the implementation of fault-tolerance and reliability in Apex including exactly-once semantics via distributed checkpointing and effective state management.
⦁ Chapter 6, Example Project –. Real-Time Aggregation and Visualization, puts together all the building blocks to show a streaming analytics project and how to integrate it with a UI and existing infrastructure.
⦁ Chapter 7, Example Project –. Real-Time Ride Service Data Processing, relies on a historical dataset to simulate a real-time ride service data stream. We are using event time and out-oforder processing, in particular, to build a simple analytics application that can serve as a template for more complicated event stream data pipelines.
⦁ Chapter 8, Example Project –. ETL Using SQL, shows how to build a classic ETL application using Apex and Apache Calcite.
⦁ Chapter 9, Introduction to Apache Beam, introduces the Beam stream processing framework and an approach that allows a stream application engine such as Apex to be swapped in if needed.
⦁ Chapter 10, The Future of Stream Processing, looks at the road ahead for Apex and stream processing in general. We are going to examine the role of machine learning, as well as the role of SQL and why it is important for streaming.