Episode 178: Akka With Jonas Boner

Topics covered
Popular Clips
Episode Highlights
Advantages
discusses the advantages of using the actor model in Akka, highlighting its ability to handle concurrency and scalability efficiently. He explains that actors encapsulate state and behavior, ensuring thread safety and eliminating race conditions, which allows developers to focus on business logic rather than concurrency issues 1. Boner also notes that while the actor model is inspired by Erlang, Akka integrates additional tools to enhance fault tolerance and reliability 2.
You basically write your code once, not thinking about either of these. If you work inside the sort of the actor model, you have to prepare your application to scale either up or out, and sometimes both.
---
Despite these benefits, developers may initially find the actor model's message-passing approach unfamiliar, but it ultimately simplifies the development process 3.
Concurrency
The actor model in Akka excels in managing concurrency and message passing, allowing seamless communication across distributed systems. explains that actors operate independently, using message queues to communicate asynchronously, which enhances scalability and performance 4. This model supports both single-threaded and multi-threaded environments, making it versatile for various applications 5.
We have shown in benchmark that it can limit your throughput by to one third of your, of what you could get if you're using unblocking calls.
---
Boner advises against using blocking future calls, as they can significantly reduce throughput, and instead recommends non-blocking APIs to maximize efficiency 6.
Comparison
Comparing Akka with Erlang, highlights the similarities and differences in their actor models. While both systems use actors for concurrency, Akka offers additional tools like software transactional memory for handling consensus problems more efficiently 7. Boner acknowledges Erlang's robust runtime but emphasizes the JVM's superior optimization capabilities for high-throughput, low-latency applications 8.
Erlang is amazing, right? I mean, but, but I would have to say it's very much depending on your use case.
---
He notes that developers familiar with Erlang will find Akka's semantics familiar, though there are runtime differences due to the underlying platforms 8.
Related Episodes


Episode 171: Scala Update with Martin Odersky
Answers 383 questions
SE-Radio-Episode-249:-Vaughn-Vernon-on-Reactive-Programming-with-the-Actor-Model
Answers 383 questions

Episode 179: Cassandra with Jonathan Ellis
Answers 383 questions

Episode 129: F# with Luke Hoban
Answers 383 questions

Episode 381: Josh Long on Spring Boot
Answers 383 questions

Episode 145: Spring in 2009 with Eberhard Wolff
Answers 383 questions

Episode 85: Web Services with Olaf Zimmermann
Answers 383 questions

Episode 119: DSLs in Practice with JP Tolvanen
Answers 383 questions

Episode 22: Feedback
Answers 383 questions

Episode 44: Interview Brian Goetz and David Holmes
Answers 383 questionsEpisode 29: Concurrency Pt.3
Answers 383 questions

Episode 140: Newspeak and Pluggable Types with Gilad Bracha
Answers 383 questions

Episode 80: OSGi with Peter Kriens and BJ Hargrave
Answers 383 questions

SE-Radio-Episode-267-Jürgen-Höller-on-Reactive-Spring-and-Spring-5.0
Answers 383 questions













