bombay-transition 0.1.0

A transport-free kernel for deterministic state transitions.
Documentation
  • Coverage
  • 100%
    55 out of 55 items documented1 out of 7 items with examples
  • Size
  • Source code size: 27.1 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.03 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 7s Average build duration of successful builds.
  • all releases: 7s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • devrandom-labs/bombay-entity
    0 0 2
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • joeldsouzax

Composable, representable, executable state machines.

A reducer is the total function State × Event → State × Effects. It does not execute effects, choose a transport, own locks, or prescribe storage. Those omissions are the useful boundary: interpreters may be concurrent, asynchronous, simulated, or model checked without changing the reducer.

Entity lifecycle management is one application. Actor supervision, protocol sessions, retry policies, and resource ownership can use the same kernel when their decisions are deterministic and their effects can be represented as data. It is not appropriate for algorithms whose state is intrinsically external or whose correctness depends on hidden I/O.

[Machine] retains sequential, product, and choice composition as concrete structure. The same value can therefore be executed with [Machine::step] and inspected with [Machine::describe]. Composition is static and allocation-free: Rust monomorphizes the concrete composition tree.

Bombay Entity can use this to keep its executable lifecycle synchronized with topology documentation and reference models. Actorpass could later use it for supervision or incarnation protocols without depending on entity semantics. It should not replace Actorpass's event loop, mailbox, scheduler, or resource ownership: those are interpreters and runtime capabilities, not deterministic machine descriptions.