Skip to content

Commit 5be3322

Browse files
committed
better real-world examples
Signed-off-by: Pablo Pérez Schröder <2639770+nomonamo@users.noreply.github.com>
1 parent d17e668 commit 5be3322

File tree

1 file changed

+36
-9
lines changed

1 file changed

+36
-9
lines changed

README.md

+36-9
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,54 @@
1313
- **secure**: all data is encrypted, only visible to authorized users
1414
- **extensible**: you can develop custom actions in golang
1515

16-
µTask allows you to model business processes in a **declarative yaml format**. Describe a set of inputs and a graph of actions and their inter-dependencies: µTask will asynchronously handle the execution of each action, working its way around transient errors and keeping a trace of all intermediary states until completion.
16+
µTask allows you to model business processes in a **declarative yaml format**. Describe a set of inputs and a graph of actions and their inter-dependencies: µTask will asynchronously handle the execution of each action, working its way around transient errors and keeping an encrypted, auditable trace of all intermediary states until completion.
1717

1818
<img src="./assets/img/utask.png" width="50%" align="right">
1919

20-
Here are some example usecases for µTask:
21-
- empower your internal PaaS ecosystem by connecting services through a single entry point
22-
- automate a sequence of API calls across services, replacing ad-hoc scripts without version control
23-
- formalize user requests: user A requests access to a resource, user B validates and triggers a sequence of actions fulfilling the request
24-
- trigger remediation commands across a farm of machines over ssh
25-
26-
µTask keeps a structured and encrypted trace of every process that it runs, for you to audit.
27-
2820
## Table of contents
2921

22+
- [Real-world examples](#examples)
3023
- [Quick Start](#quickstart)
3124
- [Operating in production](#operating)
3225
- [Configuration](#configuration)
3326
- [Authoring Task Templates](#templates)
3427
- [Extending µTask with plugins](#plugins)
3528
- [Contributing](#contributing)
3629

30+
## Real-world examples <a name="examples"></a>
31+
32+
Here are a few real-world examples that can be implemented with µTask:
33+
34+
### Kubernetes ingress TLS certificate provisioning
35+
36+
A new ingress is created on the production kubernetes cluster. A hook triggers a µTask template that:
37+
- generates a private key
38+
- requests a new certificate
39+
- meets the certificate issuer's challenges
40+
- commits the resulting certificate back to the cluster
41+
42+
### New team member bootstrap
43+
44+
A new member joins the team. The team leader starts a task specifying the new member's name, that:
45+
- asks the new team member to generate an SSH key pair and copy the public key in a µTask-generated form
46+
- registers the public SSH key centrally
47+
- creates accounts on internal services (code repository, CI/CD, internal PaaS, ...) for the new team member
48+
- triggers another task to spawn a development VM
49+
- sends a welcome email full of GIFs
50+
51+
### Payments API asynchronous processing
52+
53+
The payments API receives a request that requires an asynchronous antifraud check. It spawns a task on its companion µTask instance that:
54+
- calls a first risk-assessing API which returns a number
55+
- if the risk is low, the task succeeds immediately
56+
- otherwise it calls a SaaS antifraud solution API which returns a score
57+
- if the score is good, the task succeeds
58+
- if the score is very bad, the task fails
59+
- if it is in between, it triggers a human investigation step where an operator can enter a score in a µTask-generated form
60+
- when it is done, the task sends an event to the payments API to notify of the result
61+
62+
The payments API keeps a reference to the running workflow via its task ID. Operators of the payments API can follow the state of current tasks by requesting the µTask instance directly. Depending on the payments API implementation, it may allow its callers to follow a task's state.
63+
3764
## Quick start <a name="quickstart"></a>
3865

3966
### Running with docker-compose

0 commit comments

Comments
 (0)