Skip to content

Questions about Isolate Groups and "move" operator #6

@KyleFin

Description

@KyleFin

(Context: I've learned a bit about parallelism in general and in Dart but don't have much hands-on experience)

isolate_agents looks like an awesome implementation of the Actor pattern! Thanks for implementing and sharing it, especially the nice write up and example use-cases in your Medium post and this repo.

I had a few thoughts / questions:

  • You mentioned that controlling the lifecycle of isolates is a benefit of isolate_agents compared to Flutter's .compute(). How do Agents relate to isolate groups? I remember hearing exciting stuff ~18 months ago about how much isolate groups would reduce the cost of spinning up new isolates. With Agents, would you create a pool of long-running agents and send work to them?

    • I don't even know enough about this to know what I'm asking, but it seems like there could be some interesting interactions between agents and isolate groups.
  • Another performance consideration you mentioned is the need for a "move" operator to allow constant time communication between isolates. Again I'm not familiar with how this all works, but I thought you might be interested in this Rust crate that generates FFI bindings and allows "zero copy returns over the FFI boundary". It would be awesome to use Dart everywhere (with agents?) instead of Rust for high-performance parallelism. Just thought I'd share in case that approach is of interest. (I love how you took inspiration from Clojure for isolate_agents)

Thanks again!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions