Stream Processing with Apache Flink

Errata for Stream Processing with Apache Flink

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date Submitted
Safari Books Online

Figure 3-1 in Chapter 3 under section "Components of a Flink Setup" has a mistake. There are five square depicting components and the far right component is labeled "ResourceManager" instead of "TaskManager".

Ori Popowski  Jun 21, 2019 
Safari Books Online

In chapter 2 under Section "Processing Streams in Parallel" under subsection "Latency and Throughput" under sub-sub section "Latency Versus Throughput", in the end of the 2nd paragraph, it says "Coffees hop" instead of "Coffee shop"

Ori Popowski  Jun 21, 2019 
Other Digital Version -

The table of contents does not reflect the contents of the book (most chapters have a different name in the print, and two chapters are reversed online; the online version also mentions version 1.2 of Flink, while the book is for Flink 1.7).

Thibaut Cuvelier  Jul 09, 2019 
Other Digital Version 62
Section on Watermarks

"Flink encodes timestamps as 16-byte Long values" should read... "Flink encodes timestamps as 8-byte Long values"

Andy Bryant  Sep 12, 2019 
PDF Page 65
Heading at bottom of the page

"Performace Implications of Checkpointing" should be "Performance Implications of Checkpointing"

Fabian Hueske
Jul 24, 2019 
Printed Page 121
Example 6-9, processElement2 function

The 2 lines below comment "// remove current timer and register new timer" were: ctx.timerService().deleteEventTimeTimer(curTimerTimestamp); ctx.timerService().registerProcessingTimeTimer(timerTimestamp); They should be both EventTime or both ProcessingTime based on the env stream time characteristic, which is not present in the code snippet.

Buqian Zheng  Jul 10, 2019 
Printed Page 121
Example 6-9

The line > ctx.timerService().deleteEventTimeTimer(curTimerTimestamp) should be > ctx.timerService().deleteProcessingTimeTimer(curTimerTimestamp)

Fabian Hueske
Jul 24, 2019 
Printed, PDF Page 155

The descriptions of "ReducingState" says: "The iterator returned by get() returns an Iterable with a single entry, which is the reduced value." The description of "AggregatingState" says: "Aggregating State.get() computes the final result and returns it as an Iterable with a single element." However, both get() methods do not return an Iterable but the final result value.

Fabian Hüske  Aug 16, 2019 
PDF Page 247
Example 8-10

Should isRunning variable in CountSource class be @volatile? I think it would be helpful to have the reasoning in the book, maybe as a footnote.

Roman  Nov 01, 2019