Book Image

Scala Programming Projects

By : Mikael Valot, Nicolas Jorand
Book Image

Scala Programming Projects

By: Mikael Valot, Nicolas Jorand

Overview of this book

Scala Programming Projects is a comprehensive project-based introduction for those who are new to Scala. Complete with step-by-step instructions and easy-to-follow tutorials that demonstrate best practices when building applications, this Scala book will have you building real-world projects in no time. Starting with the fundamentals of software development, you’ll begin with simple projects, such as developing a financial independence calculator, and then advance to more complex projects, such as a building a shopping application and a Bitcoin transaction analyzer. You’ll explore a variety of Scala features, including its OOP and FP capabilities, and learn how to write concise, reactive, and concurrent applications in a type-safe manner. You’ll also understand how to use libraries such as Akka and Play. Furthermore, you’ll be able to integrate your Scala apps with Kafka, Spark, and Zeppelin, along with deploying applications on a cloud platform. By the end of the book, you’ll have a firm foundation in Java programming that’ll enable you to solve a variety of real-world problems, and you’ll have built impressive projects to add to your professional portfolio.
Table of Contents (18 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Actors


How can we define the term  Actor? In our first attempt, we considered explaining it technically, using a threading model, concurrency, call stacks, a mailbox, and so on. Then, we realized that a technical description doesn't reflect the essence of a solution based on Actors.

In fact, every time we have to design a solution based on Actors, we can see the Actor as a human working in a company; this person has a name, and maybe an email address (Actor reference). The first important fact is that he is not alone; he is going to interact with others (messaging), receiving messages from his hierarchy and transmitting other messages to colleagues or subordinates (supervisors).

The imaginary company is structured using a hierarchy; a supervisor (user guardian) is looking at the health of its subordinate, and, when a problem is raised, if the supervisor can handle it, they will perform actions to fix it. If the error is unmanageable, the supervisor will escalate it to their own superior (supervisor...