Skip to content

deliveryhero/lymph

Folders and files

NameName
Last commit message
Last commit date
Sep 25, 2015
Feb 24, 2016
Oct 14, 2015
Feb 25, 2016
Oct 13, 2015
Feb 19, 2016
Jun 25, 2014
Oct 13, 2015
Feb 19, 2016
Aug 7, 2015
Jun 25, 2014
Oct 27, 2014
Oct 13, 2015
Jun 25, 2014
Jan 27, 2016
Oct 27, 2014
Feb 19, 2016
Oct 13, 2015

Repository files navigation

https://travis-ci.org/deliveryhero/lymph.svg?branch=master

Lymph

lymph is an opinionated framework for Python services. Its features are

  • Discovery: pluggable service discovery (e.g. backed by ZooKeeper)
  • RPC: request-reply messaging (via ZeroMQ + MessagePack)
  • Events: pluggable and reliable pub-sub messaging (e.g. backed by RabbitMQ)
  • Process Management

There's documentation on readthedocs.org.

Installation (as a dependency)

# py-monotime requires python headers, and gevent and cython require build-essential
$ sudo apt-get install build-essential python-dev
$ pip install https://github.com/deliveryhero/lymph.git#egg=lymph

Development (of lymph itself)

$ git clone https://github.com/deliveryhero/lymph.git
$ cd lymph
$ pip install -r requirements/dev.txt

Run tests with tox, build documentation with fab docs.

Running services

To run the example services, you can use the example node config in conf/sample-node.yml. You'll also need a local installation of ZooKeeper (with the configuration provided in the Getting Started Guide) and RabbitMQ:

$ export PYTHONPATH=examples
$ cp conf/sample-node.yml .lymph.yml
$ lymph node

You can then discover running services:

$ lymph discover

and send requests to them from the commandline:

$ lymph request echo.upper '{"text": "transform me"}'

To see the log output of a running service, try:

$ lymph tail echo -l DEBUG