Overview
The support for distributing and concurrent processing is provided by different stacked frameworks and libraries. Scala concurrent and parallel collections classes leverage the threading capabilities of the Java virtual machine. Akka.io
implements a reliable action model originally introduced as part of the Scala standard library. The Akka framework supports remote actors, routing, and load balancing protocol; dispatchers, clusters, events, and configurable mailboxes management; and support for different transport modes, supervisory strategies and typed actors. Apache Spark's resilient distributed datasets with advanced serialization, caching, and partitioning capabilities leverage Scala and Akka libraries.
The following stack representation illustrates the interdependencies between frameworks:
Each layer adds a new functionality to the previous one to increase scalability. The Java virtual machine runs as a process within...