Congratulations on reaching the last chapter! This chapter will be about the documentation of ReactiveX family libraries. ReactiveX represents the core concepts and operations that are used in different programming languages.
In most cases, these ReactiveX operations are explained using marble diagrams, such as this one:

It will be especially important to understand how to read marble charts so that the developer can efficiently use and understand the documentation provided for RxJava and ReactiveX. There are many more operators that we didn't have a chance to cover here but can be very useful for developers, so the ability to read and understand the documentation is critical.
Why didn't we cover this earlier? We believe that these diagrams are hard to understand and explain right off the bat, but as you know what the operations are and what the .map() and .flatMap() do, it will be easier to wrap your head around the charts.
First, in this chapter, we will learn the core elements that make up the marble diagrams. Also, we will see that there are some great tools, such as RxMarbles, that can help you in the learning process.
Finally, we will explore a few operators along with their marble charts to examine each case by example, as shown here:
- .map()
- .flatMap()
- .groupBy()
- Subject
- Others
These case-by-case examples and explanations will provide the necessary groundwork to make the understanding of marble charts a lot easier.
After finishing reading this chapter, the developer will be able to go to the ReactiveX website, look up any operator, and understand right away what it does, what it is for, and how to use it.
The topics discussed in this chapter are:
- What are the core elements of the marble diagrams?
- What is the RxMarbles tool?
- Explained examples for operators, such as Map and GroupBy, to deepen understanding of the marble diagrams