Expand description
Process-level runtime: actor system, pools, clock, RNG and the mockable synchronisation primitives, all
behind one SharedRuntime handle so callers never branch on platform. SharedRuntime::seeded(...) is what
makes ReifyDB deterministic; an unmocked clock, an unseeded RNG or a pool scheduling outside the seeded
executor defeats DST replay.
Modules§
- actor
- Lightweight actor system: each actor owns its mailbox, processes serially, and replies through a typed
channel.
core::actors/enumerates the actor identities the workspace knows about; this module is what those identities are scheduled and run on. - cache
- context
- The workspace’s two sources of non-determinism, the wall clock and the RNG, behind mockable handles so a
seeded run reproduces the same trace. Reaching into
stdfor either instead defeats DST replay. - fatal
- Process-wide fatal handling: either the database is healthy or it does not run at all.
- pool
- Execution domains split by workload shape so one kind of work cannot starve another: long-lived actors on the
actor pool (
coordinationfor tiny high-frequency handlers,flowfor heavy flow execution), short-lived work on the task pool, data-parallel work on the compute pool, async I/O on the embedded tokio runtime. - shutdown
- sync
- Synchronisation primitives that are mockable under deterministic simulation. Code that builds on
std::syncdirectly cannot be replayed; code that builds on this module can. - version_
epoch