Skip to main content

Light python framework for AWS SWF

Project description

Light python framework for AWS SWF

Project

Focus of this project

Similar projects exists (like Simpleflow which seems mature). Here is where Caravan differs from existing projects:

  • Support of AWS Lambda tasks

  • Boto3

  • KISS

  • Bring your own workflow framework (standard implementations as contribs)

  • No coupling between Decider code and Activity code

  • Paster compatible config file

Features

  • Decider worker

  • Activity task worker TODO

  • Commands to start/signal/terminate an arbitrary workflow execution

  • Command to list open workflow execution

  • Command to register a domain

Configuration

Caravan uses Boto3 to connect to AWS. See Boto 3 configuration guide to setup your AWS credentials.

Usage

Setup a SWF for the example:

$ caravan-domain-register -n CaravanExample --retention-days 1

List open execution for last 24h:

$ caravan-list -d CaravanExample

List open execution for year 2015:

$ caravan-list -d CaravanExample --oldest 2015-01-01

Run the decider:

$ caravan-decider -d CaravanExample -m caravan.examples.demo -t default

Start an execution:

$ caravan-start -d CaravanExample -n Demo -v 0.1 -i 1

Send a signal to an execution:

$ caravan-signal -d CaravanExample -i 1 -s PAYMENT_CONFIRMED

Terminate an execution:

$ caravan-terminate -d CaravanExample -i 1

Similar projects

Python:

Ruby:

References

Development

Possibly use virtualenvwrapper to manage your virtualenvs.

$ mkvirtualenv caravan

or

$ virtualenv caravan

Clone and install development dependencies:

(caravan)$ git clone git@github.com:pior/caravan.git
(caravan)$ cd caravan
(caravan)$ pip install -e .[dev]

Run tests:

(caravan)$ nosetests

Release

The release process use zest.releaser:

$ fullrelease

License

MIT licensed. See the bundled LICENSE file for more details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caravan-0.2.0.tar.gz (13.1 kB view hashes)

Uploaded Source

Built Distribution

caravan-0.2.0-py2-none-any.whl (22.0 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page