Designing and writing a real-time streaming publication with Apache ApexAbout This BookGet a clear, practical approach to real-time data processingProgram Apache Apex streaming applicationsThis book shows you Apex integration with the open source Big Data ecosystemWho This Book Is ForThis 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.What You Will LearnPut together a functioning Apex application from scratchScale an Apex application and configure it for optimal performanceUnderstand how to deal with failures via the fault tolerance features of the platformUse Apex via other frameworks such as BeamUnderstand the DevOps implications of deploying ApexIn DetailApache 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.Style and approachThis 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.