Skip to content

sandyz1000/waterwheel

 
 

Repository files navigation

Waterwheel

Waterwheel is a job scheduler similar to Airflow but with a very different design.

For more information see here.

To get started with a basic deployment see here.

Developing Locally

Waterwheel is built using Rust. Command automation uses Just. Build system is Bazel

Create a .env file with the mandatory config settings:

# docker compose will use this when creating the database:
POSTGRES_PASSWORD=password

WATERWHEEL_DB_URL=postgres://postgres:${POSTGRES_PASSWORD}@localhost/
WATERWHEEL_SERVER_ADDR=http://localhost:8080/
WATERWHEEL_HMAC_SECRET=shared secret
WATERWHEEL_NO_AUTHZ=true

Now launch the services (Postgres and RabbitMQ):

just up

In two separate terminals build and launch Waterwheel server and worker:

# run the server
bazel run waterwheel server

# in a separate terminal
bazel run waterwheel worker

Building a Release binary

Build a release binary using bazel:

bazel build -c opt waterwheel

Build a docker image and load into the local Docker service:

bazel run waterwheel_load

Other commands are available in the Justfile. Run just help for a list.

About

A workflow scheduler based on petri-nets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 72.2%
  • TypeScript 25.2%
  • Starlark 1.9%
  • JavaScript 0.3%
  • Just 0.3%
  • Open Policy Agent 0.1%