Skip to content

Instantly share code, notes, and snippets.

@SethTisue
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SethTisue/baea8e35b50c4e3a0916 to your computer and use it in GitHub Desktop.
Save SethTisue/baea8e35b50c4e3a0916 to your computer and use it in GitHub Desktop.
Scalawags #19

Scalawags #19: Five Years of Akka w/ Legendary Viktor Klang

Scalawags, not the podcast you come to for facts

Scalawags, the podcast that brings the Internet to its knees with double-digit live-viewing numbers!

with special guest Viktor Klang, man of Akka

youtube: https://www.youtube.com/watch?v=x9IxmgJNLbg

Intro (0:00)

  • Viktor loses up here what he gains down there
  • the rapture came and only Daniel was chosen

Akka, the early days (3:50)

  • Akka is a big deal
  • http://akka.io
  • it's five years old
  • Jonas Bonér started it...
  • ...but Viktor made the first pull request
  • Lift was the matchmaker
  • revealed: contents of that first PR!!
  • on GitHub, Akka started the day after Node.JS started
  • main inspiration: Erlang
  • money quote: "concurrency is just a specialization of distributed computing"
  • Akka vs. Scala-standard-library actors
  • Akka resembles Erlang less?

Akka rebooted (13:45)

  • why the rewrite for 2.0?
  • supervision!
  • actor systems
  • proper classloader handling
  • internal architectural issues

Akka HTTP and Akka Streams (20:40)

Actors and type safety (32:50)

  • messages are just Any. will this change? how do you type actors?
  • actors and the active object design pattern
  • http://en.wikipedia.org/wiki/Active_object
  • the first Akka had typed actors, using AOP
  • later Viktor rewrote it to use JDK proxies
  • but, performance penalty
  • Roland Kuhn has used macros to type messages and responses
  • issues: thread-safety of reflection? performance? Java interop?
  • research on typed actors at EPFL?
  • Marlow and Wadler's paper on typing Erlang:
  • https://synrc.com/publications/cat/Functional%20Languages/Erlang/erlang.pdf
  • recent discussions on using marker interfaces to associate message types with actors
  • Josh: perhaps actors will stay untyped but we'll build higher-level typed APIs over top of them
  • for example, Akka Streams
  • analogy with type erasure in the VM itself?
  • nominal typing leads to chicken-or-egg problems with serialization and class loaders

Akka Streams vs. scalaz-stream (46:25)

Akka and Java (58:00)

  • are Akka Streams usable from Java?
  • yes. does that constrain the design?
  • what proportion of Akka users are using it from Java?
  • a lot. could even be 50/50
  • "the best way of gaining traction [...] for any technology, is to be open, and not to be judgmental"
  • Akka for Python?
  • https://github.com/jodal/pykka is Akka-inspired
  • something similar for .NET exists?
  • what are the implications of Java 8 for Akka?

Listening to users (1:03:35)

  • Dick: how do you stay in touch with what users want?
  • culture!
  • putting a high priority on documentation and helping newcomers
  • treat root causes, not just symptoms

Security (1:07:25)

  • user question: what about security if some nodes are untrusted?
  • no man is an island, but actors are

Monitoring (1:10:30)

  • JMX is roundly made fun of
  • stack traces >> core dumps
  • async "stack traces" at the JVM level? want.

Wrap-up (1:14:10)

  • Viktor's thoughts on life, the universe, and everything
  • what is the optimum thread pool size of an unladen African swallow?
  • are actors people?
  • moving past Akka's notorious TerminatedChildrenDungeon scandal
  • behind "the one who walks the bubbles of space-time"
  • aka the Flying Spaghetti Actor
  • Captain Deadlock Dreadlock
  • try Akka! you have the power.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment