Skip to content

Supervisor API  #22

@goodboy

Description

@goodboy

I want to start design discussion on how to approach erlang-like supervisors including restart strategies and how this will interplay with a service discovery system and possibly real-time code replacement.

Some questions/comments I have:

  • what's the (semantic) difference between a nursery and a supervisor?

  • an explicit distinction should be made between a MainProcess supervisor and the arbiter actor

    • the Arbiter is per-host and is part of service discovery between hosts
  • how do we best implement a distributed supervisor (one that spawns actors over multiple hosts)?

    • does it simply send the spawn request to the appropriate arbiter who will then create or use a host-local nursery?
    • what happens when all actors on the remote host go down but a remote actor is still using a remotely spawned actor in that process cluster?
  • what does a distributed process supervisor API look like?

    • how does this interact with the arbiter and service discovery system?
  • how does an orchestration layer build on all this?

  • here's erlang's supervisor behaviors

Much more to come...

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions