Director

directror travis test status Hex version

Welcome

Director is a production-ready supervisor and manager for Erlang/Elixir processes with focus on speed and flexibility.

Synopsis

According to the Erlang's manual documentation:

A supervisor is a process that supervises other processes called child processes.
A child process can either be another supervisor or a worker process.
Supervisors are used to build a hierarchical process structure called a supervision tree, a nice way to structure a fault-tolerant application.
In Erlang/Elixir we tell supervisors to start other processes and restart them if they crash, etc.

Features:

  • If a child crashed, Director can do following works (Depends on your childspec plan):
    • Restart child.
    • Restart child after time interval.
    • Delete child from its children.
    • Wait for calling restart_child/2-3 for restarting.
    • Crash itself.
  • A Director process can give response for all API functions of OTP/Supervisor module (for example director:which_children(Pid) =:= supervisor:which_children(Pid)).
  • Director does not write top of generic behaviors like gen_sever, etc. It was written as Erlang special process and it is blazingly fast.
  • Director has its own clean debug output for any working state (Standard OTP/sys debug).
  • In Director every child can has its own filter for validating its log for starting and crashing.
  • Director makes robust and flexible approach for starting and managing many children with one childspec.
  • Director gives pids of all running children in separate request called get_pids/1-2.

All features not listed here.

For more info see Wiki page.

License

BSD 3-Clause

Links

Github
This documentation is availible in http://docs.codefather.org/director too.