26 lines
643 B
Markdown
26 lines
643 B
Markdown
# Architecture: hyper-p2p-cron-gossip
|
|
|
|
**Protocol:** `cron-gossip/v1`
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
App --> CG[HyperP2PCronGossip]
|
|
CG --> Jobs["_jobs Map"]
|
|
CG --> Tick[tick dueCron]
|
|
Tick --> Fire[cron-fire gossip]
|
|
```
|
|
|
|
## Wire messages
|
|
|
|
| type | fields | direction | behavior |
|
|
|------|--------|-----------|----------|
|
|
| `cron-fire` | `jobId`, `expr`, `peer`, `at` | bidirectional | Sync `lastRun`, learn unknown jobs |
|
|
|
|
## State model
|
|
|
|
Job: `{ jobId, expr, lastRun, at }`.
|
|
|
|
## Composition
|
|
|
|
Pair with `hyper-p2p-leader-lease` so only the leader schedules cluster-wide jobs; use `hyper-p2p-deadline-queue` for per-task deadlines after fire.
|