Refactoring the inventory management module
We'll start out by refactoring the inventory management module, like we did in in the section titled The Book and InventoryClerk actors, in Chapter 3, Curing Anemic Models with Domain-Driven Design. The focus of the next few sections will be to get the Book
entity to use PersistentActor
and an event sourced approach to its persistence. This will be a multi-part process where we do an initial simple refactor. Then, we'll layer in some improvements as I introduce a few new concepts from Akka Persistence.
The PersistentEntity abstract class
The PersistentEntity
abstract class, in the bookstore-common
project, is the base class that all of our concrete event sourced entities will extend from. It's a similar concept to EntityActor
from the Chapter 3, Curing Anemic Models with Domain-Driven Design, DDD refactor, but it's a lot less complex. The majority of the complicated stuff I hand coded is now handled by PersistentActor
, which PersistentEntity
extends...