I’m an Akka newbie but my understanding of how it should work with Actors (and without locks on shared data) is one would create an Actor to represent the state of the inventory of each specific book title.
Other actors that want to tell this Actor to reduce its inventory would send a message to ask it to do so. The Actor would only be running in one physical node, and it would process the incoming messages received in its mailbox, one by one (no race conditions like in traditional multi-threaded coding). For each incoming message, the Actor could consider whether it wants to comply with the incoming message (and decrease the inventory say), or whether to reject it *(because it has no inventory left for example). This Actor could reply back to the sending Actor accordingly.