Celluloid Supervision

Gem Version Build Status Code Climate Coverage Status

Supervisors; with Supervision Containers (Groups), Configurations, and Trees for Celluloid.

To supervise actors, you have many options:

Using supervisors.


MyActor.supervise as: :my_actor # Without arguments.
MyActor.supervise as: :my_actor, args: [:one_arg, :two_args]


Celluloid.supervise as: :my_actor, type: MyActor # Without arguments.
Celluloid.supervise as: :my_actor, type: MyActor, args: [:one_arg, :two_args]

Using containers.

container = Celluloid::Supervision::Container.new {
  supervise type: MyActor, as: :my_actor
  supervise type: MyActor, as: :my_actor_with_args, args: [:one_arg, :two_args]

Using configuration objects:

config = Celluloid::Supervision::Configuration.define([
    type: MyActor,
    as: :my_actor
    type: MyActor,
    as: :my_actor_with_args,
    args: [

# Whenever you would like to deploy the actors:

# Whenver you would like to shut them down:

# Reuse the same configuration if you like!

By on-going configuration object:

config = Celluloid::Supervision::Configuration.new
config.define type: MyActor, as: :my_actor
config.define type: MyActor, as: :my_actor_with_args, args: [:one_arg, :two_args]
config deploy

# Now add actors to the already running configuration.
config.add type: MyActor, as: :my_actor_deployed_immediately

Documentation coming:

  • Supervision Trees
  • Supervised Pools
  • Supervised Supervisors


  • Fork this repository on github.
  • Make your changes and send us a pull request.
  • If we like them we'll merge them.
  • If we've accepted a patch, feel free to ask for commit access.


Copyright (c) 2011-2015 Tony Arcieri, Donovan Keme. Distributed under the MIT License. See LICENSE.txt for further details.