Uopdating readme

This commit is contained in:
Kinesin Data Technologies Incorporated
2022-10-05 13:03:04 -03:00
parent bbce4c208c
commit 8c29665962
+32 -12
View File
@@ -1,28 +1,48 @@
Waterfall # Waterfall
=========
Waterfall is a declarative task execution framework. Waterfall is a declarative task execution framework.
Why Another Execution Framework
=============================== # Why Another Execution Framework
There are many, many execution frameworks out there that support defining There are many, many execution frameworks out there that support defining
tasks with inter-task dependencies. Most of them only partially include tasks with inter-task dependencies. Most of them only partially include
scheduling in their design. scheduling in their design.
Overview # Building and Running
--------
Resources ```bash
========= cargo build
```
# Overview
## Example
## Resources
Resources are at the heart of Waterfall. They are simple things: labels Resources are at the heart of Waterfall. They are simple things: labels
with an associated set of time intervals. Tasks produce resources for with an associated set of time intervals. Tasks produce resources for
given intervals. given intervals.
Tasks ## Tasks
=====
Tasks are commands that run on a set schedule. Each task produces one or Tasks are commands that run on a set schedule. Each task produces one or
more `Resource`. The run schedule naturally breaks up the timeline into more `Resource`. The run schedule naturally breaks up the timeline into
intervals. When a task runs at time $T_n$, it will make make each resource intervals. When a task runs at time `T_n`, it will make make each resource
it provides available over the interval $(T_{n-1},T]$. it provides available over the interval `(T_{n-1},T]`.
### Commands
A task has three commands defined:
- **check** - Command used to run an out-of-band verification of the data. Should have no side effects.
- **up** - Command run to create resources.
- **down** - Command run when removing resources.
### Dependencies
Tasks will run at their scheduled time (or immediately if their scheduled time
has passed already).
It's possible to define additional constraints on launching, though. Some tasks
may need resources produced by other tasks before it can start.