Published Sep 3, 2019

Episode 178: Akka With Jonas Boner

Jonas Boner delves into Akka's transformative capabilities, discussing its seamless integration with web systems, the resilient 'Let It Crash' philosophy, and its innovative use of the actor model for enhanced concurrency and scalability, all of which contribute to building high-performance distributed systems.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Functional Composition

    Functional actor composition in Akka offers a unique approach by integrating functional programming principles. explains that traditional object-oriented methods rely on class inheritance for composition, which can be limiting. In contrast, Akka uses agents from the Clojure language to allow for function composition, enabling more flexible and reusable actor systems 1. This method allows developers to send functions asynchronously to agents, which are then applied atomically, enhancing the versatility of actor-based systems.

    Instead of sending state to the behavior, sending behavior to the state. And now, since you are sending a function, you can compose that function in any way you want before you send it.

    ---

    This approach not only simplifies the composition of actors but also opens up new possibilities for asynchronous message passing through a functional lens.

       

    Agents & Transactions

    Integrating agents with transactional memory in Akka provides a robust framework for managing shared state. notes that agents coordinate function execution through a mailbox system, ensuring that functions are only applied when transactions successfully commit 2. This mechanism allows multiple agents to participate in a transaction, ensuring atomicity and consistency across operations. emphasizes the importance of explicit concurrency models, arguing that hiding complexities can lead to inefficiencies and errors 3.

    I think that it's being explicit, if it's not too much verbosity in the code, is a good thing because you know, when you both pay the price of the performance hit, but also, you know explicitly when, when things.

    ---

    By making concurrency explicit, Akka ensures developers have precise control over which states need transactional handling, promoting clarity and reliability in distributed systems.

Related Episodes