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.
# 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
$ git clone https://github.com/deliveryhero/lymph.git $ cd lymph $ pip install cython==0.20.1 $ pip install -r requirements/base.txt -r requirements/dev.txt $ pip install -e .
Run tests with tox
, build documentation with fab docs
.
To run the example services, you can use the example node config in
conf/local-zookeeper-rabbitmq-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/local-zookeeper-rabbitmq-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