This chapter is a blend of theory and technique. We covered how to use Akka cluster to run work on and then how to use it to distribute datasets partitioned by key. The problems are too big to cover in an introductory chapter to Cluster, but if you try to approach some of the problems presented in this chapter, you should start to get a good handle on how people solve some of these problems today.
Build your own worker queue using Cluster.
Build a distributed key-value store with replication.
Try to solve the linearization problem—how can you determine ordering? How can you "repair" nodes that fail and then recover?
Build a distributed key-value store with sharding.
Can you combine sharding and replication with minimal changes to the code you have now as described?
In the sharded model, can you develop a way to redistribute data to new nodes? Is it harder to do this with replication? About the same difficulty?
If you build a project, you should open source it and share your discoveries...