The Actor model has long been known to be great at modeling concurrent and parallel problems in a declarative, safe way. The challenge has always been the cost of this abstraction - implementing cheap message passing over a shared-nothing memory architecture while ensuring fairness is a tough ask. In this talk I shall go over how BEAM, with it's three decades of esoteric telecom engineering differs from Akka actors implemented over the JVM, arguably the most invested general purpose VM in existence today.
Along the way, we shall discover how design decisions affect performance at each step of a program's execution - from a global/per-process heap affecting GC latencies and throughput, a type system's effects at efficiency, to preemptive scheduling improving long tail latencies.
Slides
I'm a tech guy who wants to solve Indian problems. Typically this would involve a ton of business logic, scale and low latency requirements. Things I've picked up in my career tend to optimize for these skill sets. I graduated out of IIT Kharagpur in 2014, majoring in Mathematics and Computing. I've since worked in Housing.com and Amazon across a host of languages and problem domains. I've written critical Ruby/Rails services during Housing.com's explosive growth and later managed a team of Elixir/Erlang devs and built our real-time analytics pipeline on top of MQTT. At Amazon I'm currently working on big data applications running on a Spark + ElasticSearch cluster.