Chapter 8. Railway-oriented processing
This chapter covers
- Handling failure within Unix programs, Java exceptions, and error logging
- Designing for failure inside and across stream processing applications
- Composing failures inside work steps with the Scalaz Validation
- Failing fast across work step boundaries with Scala’s map and flatMap
So far, we have focused on what you might call the happy path within our unified log. On the happy path, events successfully validate against their schemas, inputs are never accidentally null, and Java exceptions are so rare that we don’t mind them crashing our application.
The problem with focusing exclusively on the happy path is that failures do happen. More than this: if you implement a unified log across ...