Welcome to gaffer’s documentation!

Gaffer

Control, Watch and Launch your applications and jobs over HTTP.

Gaffer is a set of Python modules and tools to easily maintain and interact with your applications or jobs launched on different machines over HTTP and websockets.

It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability.

Features

  • RESTful HTTP Api
  • Websockets and SOCKJS support to interact with a gaffer node from any browser or SOCKJS client.
  • Framework to manage and interact your applications and jobs on differerent machines
  • Server and Command Line tools to manage and interract with your processes
  • manages topology information. Clients query gaffer_lookupd to discover gaffer nodes for a specific job or application.
  • Possibility to interact with STDIO and PIPES to interact with your applications and processes
  • Subscribe to process statistics per process or process templates and get them in quasi RT.
  • Procfile applications support (see Gaffer) but also JSON config support.
  • Supervisor-like features.
  • Fully evented. Use the libuv event loop using the pyuv library
  • Flapping: handle cases where your processes crash too much
  • Easily extensible: add your own endpoint, create your client, embed gaffer in your application, …
  • Compatible with python 2.7x, 3.x

Note

gaffer source code is hosted on Github

Indices and tables