In this chapter, we looked at a different approach on how to handle reactive web interfaces via Om and React. In turn, these frameworks make this possible and painless by applying functional programming principles such as immutability and persistent data structures for efficient rendering.
We also learned to think the Om way by structuring our applications as a series of functions, which receive state and output a DOM representation of state changes.
Additionally, we saw that by structuring application state transitions through core.async channels, we separate the presentation logic from the code, which will actually perform the work, making our components even easier to reason about.
In the next chapter, we will turn to an often overlooked yet useful tool for creating reactive applications—Futures.