New guy here, just got the book. I know a bit about Akka from other reading other books for learning Scala, but haven't used it to write any apps yet other than learning stuff. (Lots of Java experience in my background).

Mostly I just wanted to provide feedback that I find the illustration app description thrilling and I think it was a very good choice. I have another book where the app is just a loan processing app and it doesn't capture the broader scope of a full reactive app the same. Plus it is boring. Just thought you guys did a good job on that because I am still engaged and excited for the rest of the book.

So my minor feedback (completely take it or leave it) is on page 8 I think it might take less cognitive load if you inserted the word "do":
At this point the big question is: where [do] these map view front-end nodes get their data from?

Following "In this introduction we started out from" there is an awkward sentence that I wonder might be better as follows:

Adding the fundamental requirement for distribution is what makes us recognize the need for new (or as so often is the case rediscovered) architecture patterns. <new sentence>
In the past we developed band-aid solutions which allowed us to retain the illusion of single-threaded local processing while having it magically executed on multiple cores or network nodes, but the gap between that illusion and reality is becoming prohibitively large. Instead of masking the problem behind frameworks the solution instead is to make the distributed, concurrent nature of our .....

I apologize if this stuff seems nit picky and everything is cheerfully offered as take it or leave it feedback. Enjoying the book and I love these concepts.

Thanks a lot for this feedback! I appreciate that you take the time to write up these issues and will incorporate them when revising the chapter. My plan is to first finish the full draft of the book and then come back to address review comments.

I am not sure what academically is right to use (persons vs people) in every context.

but on p48 2.5.1 Loose Coupling this reads more the way I would speak.

If you take a step back and think about objects as if they were [people], each with their
right to privacy, then it becomes very obvious how they should interact. [People] talk with
each other, they exchange messages at a very high level.

Modern hardware does not advance any more primarily by increasing the computing power of a single sequential execution core, physical limits 17 have started impeding our progress on this front around the year 2006 so our processors host more and more cores instead

instead maybe:

While hardware used to advance primary by increasing the computing power of a single sequential execution core, physical limits [17] began impeding progress on this front around 2006. Modern processors now advance by adding more and more cores instead.

I think the first two sentences here need to be reworked. All of the thoughts are great, but the way they are expressed feels awkward to me. This is my main problem:

In a purely functional program, mutable state is impure and considered dangerous -- the same name for a variable can refer to something different at different points in time. Mutable state is any variable that is not stable or final, and an be changed or updated inside of an application. ...

Maybe:

Any time the same name for a variable can refer to something different at different points in time there is mutable state. In a purely functional program, mutable state is considered impure and dangerous. Mutable state makes concurrent programming more difficult. In contrast, using final, immutable values in an application ...