1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! `EngineBackend` implementation backed by SQLite — **dev-only**
//! per RFC-023.
//!
//! # Phase 1a scope
//!
//! This crate is the RFC-023 Phase 1a scaffold: construction
//! semantics (`FF_DEV_MODE=1` guard, per-path registry, connection
//! pool, WARN banner), the SQLite transient-busy error classifier
//! skeleton, and an [`EngineBackend`](ff_core::engine_backend::EngineBackend)
//! impl whose data-plane methods return
//! [`EngineError::Unavailable`](ff_core::engine_error::EngineError::Unavailable).
//! Phase 1b lands the hand-ported SQLite-dialect migrations;
//! Phase 2+ replaces the Unavailable stubs with real bodies
//! paralleling `ff-backend-postgres`.
//!
//! # Production guard
//!
//! [`SqliteBackend::new`] refuses to construct without
//! `FF_DEV_MODE=1` in the process environment. The refusal is on
//! the TYPE (RFC-023 §3.3 A3 / §4.5) so every path — embedded
//! library consumers, `ff_server::start_sqlite_branch`, and
//! `ff_sdk::FlowFabricWorker::connect_with` — pays the guard.
//!
//! No ferriskey dep — this crate's transport is `sqlx`.
// RFC-025 Phase 4: worker-registry bodies. Gated on `core` so a
// `--features suspension`-only slice doesn't drag in a module whose
// `register_worker` / `heartbeat_worker` / `mark_worker_dead` /
// `list_workers` trait methods live under `core`.
pub use SqliteBackend;
pub use ;
pub use ;
pub use ;