Reactor Model of Computation
The reactor model is a way to structure concurrent, event-driven systems so that their behavior is deterministic, understandable, and predictable even in the presence of real-time interaction, distribution, and parallelism.
Subscribe to our mailing list by joining the reactor-model Google Group for announcements and discussion.
High-level overview
In the reactor model, systems are built from reactors: modular components that communicate via input and output ports. Reactors react to discrete events, which are tagged with logical time, and are scheduled according to clear rules that respect causality.
Because reactions are triggered by time-stamped events rather than low-level threads or shared memory, the same design can be executed on a single machine, across a network, or on resource-constrained embedded platforms while preserving deterministic behavior (when desired). This makes the reactor model especially well-suited for cyber-physical systems, real-time control, and autonomous robotics.
- Modular structure: systems are composed from reactors with well-defined interfaces.
- Logical time: events carry time tags, clarifying ordering and causality.
- Deterministic concurrency: parallel execution is allowed without sacrificing predictable outcomes.
- Platform versatility: the same model spans desktops, embedded devices, and distributed systems.
Projects using the reactor model
Lingua Franca (`lf-lang.org`)
Lingua Franca is a coordination language and toolchain for specifying reactor-based systems and generating efficient code for a variety of platforms and targets.
Xronos Platform
Xronos provides ready-to-deploy software infrastructure for scalable, safe, AI-driven robotics and mobility solutions, with a focus on deterministic development, real-time observability, and seamless integration.
`reactor-uc` Runtime
`reactor-uc` is a lightweight reactor runtime targeted at distributed, resource-constrained embedded systems, supporting platforms such as Zephyr, RIOT, Raspberry Pi Pico, and POSIX hosts.