Summary
In this chapter, we learned about the Actor Model when simple functions are not enough to express the needs of our domain model in a distributed way, the Erlang-inspired model is a very powerful tool to break our program into decoupled actors, which can asynchronously exchange messages with each other. Though limited, the FSharp.Core
library provides MailboxProcessor
to implement this model in our programs without any extra dependency. Later we learned about distributed actors with Akka.NET and how Akka takes the Actor Model one step beyond and allows you to communicate and deploy actors remotely. Akka also introduces the concept of supervision, which helps design highly available systems that heal themselves. Also, the Akka.FSharp
package provides a specific API for F# making it more pleasant for developers of this language to interact with the library.
Remember also the F# language and ecosystem offer other possibilities for distributed computing, like scripting on the cloud when...