By now, I hope to have proved that you can write reactive applications using core.async
. It's an extremely powerful and flexible concurrency model with a rich API. If you can design your solution in terms of queues, most likely core.async
is the tool you want to reach for.
This version of the stock market application is shorter and simpler than the version using only the standard Java API we developed earlier in this book—for instance, we didn't have to worry about thread pools. On the other hand, it feels like it is a little more complex than the version implemented using Reactive Extensions in Chapter 3, Asynchronous Programming and Networking.
This is because core.async
operates at a lower level of abstraction when compared to other frameworks. This becomes especially obvious in our application as we had to worry about creating broadcasting channels, go loops, and so on—all of which can be considered incidental complexity, not directly related to the problem at hand.
core.async
does, however, provide an excellent foundation for building our own CES abstractions. This is what we will be exploring next.
3.144.19.243