11[ ![ ] ( https://goreportcard.com/badge/github.com/pancsta/asyncmachine-go )] ( https://goreportcard.com/report/github.com/pancsta/asyncmachine-go )
22[ ![ ] ( https://pkg.go.dev/badge/github.com/pancsta/asyncmachine-go.svg )] ( https://pkg.go.dev/github.com/pancsta/asyncmachine-go )
3- ![ ] ( https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pancsta/c6032233dc1d632732ecdc1a4c119850/raw/loc.json )
43![ ] ( https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pancsta/c6032233dc1d632732ecdc1a4c119850/raw/loc-pkg.json )
4+ ![ ] ( https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pancsta/c6032233dc1d632732ecdc1a4c119850/raw/loc-tools.json )
55![ ] ( https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pancsta/c6032233dc1d632732ecdc1a4c119850/raw/tests.json )
66![ ] ( https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pancsta/c6032233dc1d632732ecdc1a4c119850/raw/tests-pkg.json )
77![ ] ( https://img.shields.io/github/v/release/pancsta/asyncmachine-go )
1717 <a href="#documentation">Docs</a> .
1818 <a href="#development">Dev</a> .
1919 <a href="#faq">FAQ</a> .
20- <a href="#changes">Changes</a>
2120 <br />
2221</div >
2322
@@ -43,24 +42,25 @@ and [diagrams](https://github.com/pancsta/asyncmachine-go/pull/216).
4342As a control flow library, it decides about running of predefined bits of code (transition handlers) - their order and
4443which ones to run, according to currently active states (flags). Thanks to a [ novel state machine] ( /pkg/machine/README.md ) ,
4544the number of handlers can be minimized while maximizing scenario coverage. It's lightweight, fault-tolerant by design,
46- has rule-based mutations, and can be used to target virtually * any* step-in-time, in * any* workflow.
45+ has rule-based mutations, and can be used to target virtually * any* step-in-time, in * any* workflow. It's a low-level
46+ tool and provides acceptable performance.
4747
4848** asyncmachine-go** takes care of ` context ` , ` select ` , and ` panic ` , while allowing for graph-structured concurrency
49- with [ goroutine cancellation ] ( https://github.com/pancsta/asyncmachine-go/pull/261 ) . The history log and relations have
49+ with [ goroutine cancelation ] ( https://github.com/pancsta/asyncmachine-go/pull/261 ) . The history log and relations have
5050vector formats.
5151
5252It aims to create ** autonomous** workflows with ** organic** control flow and ** stateful** APIs:
5353
5454- ** autonomous** - automatic states, relations, context-based decisions
55- - ** organic** - relations, negotiation, cancellation
55+ - ** organic** - relations, negotiation, cancelation
5656- ** stateful** - maintaining context, responsive, atomic
5757
5858<div align =" center " >
5959 <a href="https://github.com/pancsta/asyncmachine-go/blob/main/tools/cmd/am-dbg/README.md">
6060 <img src="https://github.com/pancsta/assets/blob/main/asyncmachine-go/video-mouse.gif?raw=true" alt="TUI Debugger" /></a>
6161</div >
6262
63- Each state represents:
63+ #### Each state represents
6464
6565- binary flag
6666- node with relations
@@ -73,7 +73,7 @@ Each state represents:
7373- lock
7474- breakpoint
7575
76- Besides workflows, it can be used for ** stateful applications** of any size - daemons, UIs, configs, bots, firewalls,
76+ Besides workflows, it can be used for ** stateful applications of any size** - daemons, UIs, configs, bots, firewalls,
7777synchronization consensus, games, smart graphs, microservice orchestration, robots, contracts, streams, DI containers,
7878test scenarios, simulators, as well as ** "real-time" systems** which rely on instant cancelation.
7979
@@ -137,7 +137,7 @@ The top layers depend on the bottom ones.
137137 <tr >
138138 <td>.</td>
139139 <td>.</td>
140- <td colspan="9" align=center>🐇 <a href="pkg/machine">Machine API </a></td>
140+ <td colspan="9" align=center>🐇 <a href="pkg/machine">Machine pkg </a></td>
141141 <td>.</td>
142142 <td>.</td>
143143 </tr >
@@ -189,13 +189,13 @@ err := amhelp.WaitForAll(ctx, time.Second,
189189 mach.When1 (ss.BasicStatesDef .Ready , nil ),
190190 // pre-mutation subscription
191191 whenPayload)
192- // check cancellation
192+ // check cancelation
193193if ctx.Err () != nil {
194194 return // state ctx expired
195195}
196196// check error
197197if err != nil {
198- // err state mutation
198+ // error state mutation
199199 client.Mach .AddErr (err, nil )
200200 return // no err required
201201}
@@ -291,11 +291,11 @@ This monorepo offers the following importable packages, especially:
291291
292292Other packages:
293293
294- - [ ` /pkg/graph ` ] ( /pkg/graph ) Multigraph of interconnected state machines.
294+ - [ ` /pkg/rpc ` ] ( /pkg/rpc ) Remote state machines, with the same API as local ones .
295295- [ ` /pkg/history ` ] ( /pkg/history ) History tracking and traversal.
296296- [ ` /pkg/integrations ` ] ( /pkg/integrations ) NATS and other JSON integrations.
297+ - [ ` /pkg/graph ` ] ( /pkg/graph ) Multigraph of interconnected state machines.
297298- [ ` /pkg/node ` ] ( /pkg/node ) Distributed worker pools with supervisors.
298- - [ ` /pkg/rpc ` ] ( /pkg/rpc ) Remote state machines, with the same API as local ones.
299299- [ ` /pkg/pubsub ` ] ( /pkg/pubsub ) Decentralized PubSub based on libp2p gossipsub.
300300
301301## [ Devtools] ( /tools )
0 commit comments