Writing safe concurrent programs has become a principle concern in recent years, as multicore CPUs have become more widespread. Functional languages help developers support concurrency by encouraging immutable data structures that can be passed between threads without having to worry about a shared state. This session will cover the actor based concurrency model as base tool to write correct concurrent, reactive, fault-tolerant, scalable applications leveraging the core characteristics of immutability, isolation and asynchronous processing. F# agents by themselves allow you to define an asynchronous encapsulated sub-process that you can design to reply asynchronously to certain types of messages. We'll briefly cover core functional characteristics that are especially suited to write agent based applications, then we’ll move on to examples of MailboxProcessors and delve into the Akka.Net library to demonstrate scalable, responsive and resilient code that provides support for local and remote high performance I/O operations.
Riccardo Terrell, is a Software Architect at Microsoft who is passionate about functional programming. He is active in the F# community and started the DC F# user’s group. Riccardo is a believer in polyglot programming as a mechanism in finding the right tool for the job. He likes to describe himself as a functional guy living in an imperative world.