eggmonster / README

============
 Eggmonster
============

Eggmonster is a set of daemons and tools for managing Python daemons
deployed to a cluster of computers.


Daemons
-------

Eggmonster has four daemons, which are implemented using the ``eventful`` async
library (which in turn depends on ``pyevent`` and ``libevent``).

* `monster_eggserver`_ -- implements a proprietary 
  cheeseshop-like package repository 
* `monster_launchd`_ -- a TCP server with a custom 
  application-level protocol 
  that manages local processes
* `monster_logd`_ -- a TCP server that writes all messages 
  it receives to the filesystem
* `monster_server`_ -- the "eggmonster master," each 
  instance provides service on three different TCP ports


Tools
-----

Eggmonster includes four tools:

* `em`_ -- remotely drive a ``monster_server`` instance
* `emi`_ -- ``monster_server`` uses this to manage processes
* `monster_debug`_ -- calls ``monster_run`` under ``rpdb2``
* `monster_run`_ -- call functions within an eggmonster environment


.. _monster_eggserver: monster_eggserver.html
.. _monster_launchd: monster_launchd.html
.. _monster_logd: monster_logd.html
.. _monster_server: monster_server.html

.. _em: em.html
.. _emi: emi.html
.. _monster_debug: monster_debug.html
.. _monster_run: monster_run.html
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.