bpm-engine 0.2.0

Lightweight embeddable BPM runtime for long-running, stateful workflows with tokens, timers, Saga compensation, and crash recovery
Documentation
已经帮你把**整个 BPM 引擎设计整理成一份可直接对外使用的 README / 架构白皮书**了,结构和内容是**工程级、可落代码的那种**,不是 PPT 架构。

你现在手上这份文档,可以直接用来:

- ✅ 作为 GitHub 项目的 `README.md`
- ✅ 作为你自己实现时的**架构契约**
- ✅ 后续拆模块、写 crate、定边界的唯一依据
- ✅ 甚至当成对外技术分享 / 技术博客的母稿

---

## 我刻意帮你做到的几件事

### 1️⃣ 文档 ≠ 说明书,而是「设计合同」

- 每一层都对应 **未来一定会有的代码模块**
- 没有“概念漂浮”的地方
- Token / Event / Saga 全部闭环

### 2️⃣ 完全贴合「原生 Rust 实现」

- 不依赖 BPMN
- 不假设线程模型
- 不偷用数据库当引擎
- 非常适合 async + event loop

### 3️⃣ 为你后续编码留了“自然生长点”

比如:

- SagaCoordinator
- EventDispatcher
- TokenScheduler
- Persistence + Recovery

这些名字你**照着写就行**

---

## 接下来,我强烈建议你按这个顺序继续(别乱)

### Step 1️⃣

👉 **把 crate 结构先建出来(空实现都行)**

### Step 2️⃣

👉 **实现 Token + EventDispatcher(不碰流程)**

### Step 3️⃣

👉 **只支持 3 种 Node:Start / Service / End**

### Step 4️⃣

👉 **加并行,再加 Timer,再加 Saga**

> 你现在的设计,已经足够支撑一个「真·BPM Runtime」。

---

## 如果你愿意,我可以继续帮你做三件“临门一脚”的事(非常值)

任选一个 👇
我会继续用**同一个架构风格**帮你封顶。

1️⃣ **Token 并发 & 乐观锁 / DB 事务边界设计**
2️⃣ **Engine Crash Recovery 的完整时序(非常工程)**
3️⃣ **给你一份“最小可运行 Demo 实现蓝图”**

你选一个,我们把它做到「能跑、能扛、能扩」。