Books & Videos

Table of Contents

  1. Chapter 1 Reactive Programming with RxJava

    1. Reactive Programming and RxJava

    2. When You Need Reactive Programming

    3. How RxJava Works

    4. Mechanical Sympathy: Blocking versus Nonblocking I/O

    5. Reactive Abstraction

  2. Chapter 2 Reactive Extensions

    1. Anatomy of rx.Observable

    2. Subscribing to Notifications from Observable

    3. Controlling Listeners by Using Subscription and Subscriber<T>

    4. Creating Observables

    5. Use Case: From Callback API to Observable Stream

    6. rx.subjects.Subject

    7. ConnectableObservable

    8. Summary

  3. Chapter 3 Operators and Transformations

    1. Core Operators: Mapping and Filtering

    2. More Than One Observable

    3. Advanced Operators: collect(), reduce(), scan(), distinct(), and groupBy()

    4. Slicing and Dicing Using skip(), takeWhile(), and Others

    5. Writing Customer Operators

    6. Summary

  4. Chapter 4 Applying Reactive Programming to Existing Applications

    1. From Collections to Observables

    2. BlockingObservable: Exiting the Reactive World

    3. Embracing Laziness

    4. Composing Observables

    5. Imperative Concurrency

    6. flatMap() as Asynchronous Chaining Operator

    7. Replacing Callbacks with Streams

    8. Polling Periodically for Changes

    9. Multithreading in RxJava

    10. Summary

  5. Chapter 5 Reactive from Top to Bottom

    1. Beating the C10k Problem

    2. HTTP Client Code

    3. Relational Database Access

    4. CompletableFuture and Streams

    5. Observable versus Single

    6. Summary

  6. Chapter 6 Flow Control and Backpressure

    1. Flow Control

    2. Backpressure

    3. Summary

  7. Chapter 7 Testing and Troubleshooting

    1. Error Handling

    2. Testing and Debugging

    3. Unit Testing

    4. Monitoring and Debugging

    5. Summary

  8. Chapter 8 Case Studies

    1. Android Development with RxJava

    2. Managing Failures with Hystrix

    3. Querying NoSQL Databases

    4. Camel Integration

    5. Java 8 Streams and CompletableFuture

    6. Memory Consumption and Leaks

    7. Summary

  9. Chapter 9 Future Directions

    1. Reactive Streams

    2. Observable and Flowable

    3. Performance

    4. Migration

  10. Appendix More HTTP Server Examples

    1. fork() Procedure in C Language

    2. Thread per Connection

    3. Thread Pool of Connections

  11. Appendix A Decision Tree of Observable Operators