The Actor Model in F#

I have recently looked into F# Agents and its relation vis-à-vis the Actor Model. Fans of F# have long stared wistfully at Scala people and their Akka, but now with F# Agents and Colin Bull’s F# Actor library there finally is a start, at least.

F# Agents by themselves allow you to define an asynchronous encapsulated subprocess that you design to receive a certain type of messages and emit an answer. However, for it to be a true implementation of the Actor Model you also need some “ether”, as in a decoupling of the construction of actors from any physical machine or thread of execution as well as ensuring that you communicate with the actors only though messaging. This is where the F# Actor library comes in, providing support for  local and remote actors with high performance I/O. Have a look at the source at GitHub here. I think this is a pretty good start for an Actor Model framework, would you agree?

Leave a Reply