Repository navigation
bide v0.5.0
Tighter guarantees for multi-process deployments.
v0.5.0 extends bide's durability and audit guarantees to more of the ways a real deployment runs: several nodes sharing one journal or one governed event log, handoffs between them, and streamed runs.
- At-most-once across overlapping drivers. When two nodes briefly drive the same run, as can happen around a lease handoff, a non-idempotent step is claimed exclusively before it runs, so it still fires at most once. Leasing remains the efficiency mechanism; the claim is the safety one.
- Governed state shared live across processes. Governors sharing an event log now fold in each other's events as they act, not only on restart, and every governed action records its position in the log, so an auditor can check each recorded state digest by replaying the log through that position.
- Strict per-entity order on Postgres. The Postgres event log keeps each entity's events in a fixed order under concurrent writers.
- Hedged streaming. With backup models configured, a streaming caller receives exactly the response the run records.
- Faithful in-memory store.
MemStorereturns independent copies in the same form the SQLite and Postgres stores do.
API changes in govern:
EventLog.Appendreturns the event's position, andEventstakes a starting position.govern/eventlogtestchecks any implementation against the contract.Applier.ApplyreturnsApplied{State, Position}, andFederatedApplier.ApplyreturnsFedApplied. Log-backed governors gainSync(ctx).- The Postgres event log uses a new
governed_eventstable. Redis event-log streams should be written only through the adapter.
Install:
go get github.com/bide-ai/bide@v0.5.0
Docs: https://bide-ai.com