Successfully reported this slideshow.

Concurrent Applications with F# Agents

0

Share

Loading in …3
×
1 of 19
1 of 19

Concurrent Applications with F# Agents

0

Share

Download to read offline

To build today's responsive and scalable applications, developers need to start leveraging asynchronous programming methods. During this talk, we'll explore how developers can easily use the F# agent-based programming model, which is based upon the actor concurrency model first made popular in Erlang, to simply and quickly build concurrent applications.

To build today's responsive and scalable applications, developers need to start leveraging asynchronous programming methods. During this talk, we'll explore how developers can easily use the F# agent-based programming model, which is based upon the actor concurrency model first made popular in Erlang, to simply and quickly build concurrent applications.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Concurrent Applications with F# Agents

  1. 1. Concurrent Applications with F# Agents presented by Rachel Reese Twitter #fsharp #codemash @rachelreese @fireflylogic
  2. 2. What are F# agents? F#’s implementation of Erlang-style message passing (also in Clojure, Scala, Elixir (and many others)) [But there are differences.]
  3. 3. What is Erlangstyle message passing? Erlang’s message passing is based on the actor model devised by Carl Hewitt et al. in 1973.
  4. 4. dynamic creation of actors What is the actor model? inclusion of actor addresses in messages interaction only through direct asynchronous message passing no restriction on message arrival order
  5. 5. An actor is an independent computational entity which contains a queue, and receives and processes messages. What is an actor? Everything is an Actor
  6. 6. Determine what to do with the next incoming message What can an actor do? Create more actors Send messages to another actor
  7. 7. “One actor is no actor. They come in systems.” - Carl Hewitt
  8. 8. What does a system of actors look like? from: http://www.developerfusion.com/article/140677/writing-concurrent-applications-using-fagents/
  9. 9. What does a system of actors look like? Genes maestros de regulación, from: http://cienciasdejoseleg.blogspot.com/2011/10/genesmaestros-de-regulacion.html
  10. 10. What does a system of actors look like? Tokyo Subway Map, from: http://www.speedymole.com/Tubes/Tokyo/tokyo-subway-map.html
  11. 11. dynamic creation of actors What is the actor model? inclusion of actor addresses in messages interaction only through direct asynchronous message passing no restriction on message arrival order
  12. 12. What are F# agents? F#’s implementation of Erlang-style message passing (also in Clojure, Scala, Elixir (and many others)) [But there are differences.]
  13. 13. Asynchronous Non-blocking, specifically in reference to I/O operations (not necessarily parallel, can be sequential.) Concurrent Multiple operations happening at the same time (not necessarily in parallel). Definitions Parallel Multiple operations processed simultaneously.
  14. 14. Demos: Intro, Replies, Scanning, Emailer
  15. 15. What are some major differences between F# agents & Erlang’s message passing? F# agents are contained inprocess; they are not distributed. Lack of support for supervisors. No built-in durable mailboxes.
  16. 16. Demo: FSharp.Actor framework
  17. 17. Actors and Agents F# in general, and Async, Concurrency, & Parallelism  Fsharp.Actor  TPL Dataflow  ActorFx Additional Resources  Try F#  F# Koans  Orleans  Hewitt, Meijer, and Szyperski C9  Async and Parallel Design Patterns in F# Agents  An Introduction to Agents  Image pipeline using agents  Building an actor in F# w/ higher throughput than Akka or Erlang  F# MailboxProcessor  Building clean and cohesive concurrent systems with F# agents  SkillsMatter  FsSnip  F# Chat on IRC or JabbR  The Hitchhiker’s Guide to Concurrency  F# Asynchronous Programming Model
  18. 18. Thanks! Rachel Reese Twitter: @rachelreese Email: rachel.reese@fireflylogic.com Firefly Logic, Inc. 1000 Main Street #201 Nashville, TN 37206 http://fireflylogic.com

×