ReactiveKit
The Full-Stack Framework forDeterministicReal-Time Distributed Systems
From data-processing pipelines to interactive UIs, ReactiveKit gives you the building blocks to compose robust, real-time distributed systems that are testable and debuggable by design.
Always live data,
all the time
ReactiveKit abstracts away the complexity of subscriptions, callbacks and caches.
ReactiveKit’s full-stack reactivity primitives make stale data a thing of the past. Components throughout your architecture will always reflect the latest live updates, automatically and efficiently, with zero effort.
| AAPL | (300 shares) | $202.82 | $60,846.00 ↗ |
| MSFT | (200 shares) | $463.87 | $92,774.00 ↗ |
| TSLA | (25 shares) | $332.05 | $8,301.25 ↘ |
Build systems that
explain themselves
ReactiveKit generates a complete causal history of every action.
Understand precisely why your system is in its current state, with every change automatically traced and linked.
Every message.
Every state change.
Completely deterministic.
Isolate any bug and trace every decision with perfect reproducibility.
Build with confidence, knowing your system’s behavior is predictable and reproducible.
$ rk-trace --type=message -n 5 --event-id=de0c9df4-eea9-4597-8da7-98cd1caf067314:32:15.091 PRICE_UPDATE { symbol: "AAPL", price: 147.81 }14:32:15.102 PRICE_UPDATE { symbol: "AAPL", price: 147.82 }14:32:15.125 PRICE_UPDATE { symbol: "AAPL", price: 150.23 }14:32:15.156 ALERT_TRIGGERED { type: "VOLATILITY", symbol: "AAPL" }14:32:15.178 NOTIFY_UI { alert: "High volatility", strategyId: "ecd9a69d-48a7-48b7-95e7-7e52da1d7766" }Debug with surgical precision
- ✓Replay any system state from any point in time
- ✓Trace exact causal chains across distributed components
- ✓Test edge cases with perfect reproducibility
A New Paradigm for Real-Time Systems
ReactiveKit offers a unified and simplified approach by combining three powerful building blocks.
anywhere on your stack
Use cases:
- • Dynamic front-end UI widgets
- • Back-end streaming API endpoints
- • Real-time dashboards
process orchestration
Use cases:
- • Complex client-side form validation
- • Data processing pipelines
- • Alerting mechanisms
system backbone
Key features:
- • Ordered event bus synchronizes all interactions
- • All application communication flows through this layer
- • Single source of truth for deterministic system behavior
The combination of these three building blocks ensures that your system is always in sync,
allowing you to focus on building your application with confidence.
Reactive Components
Define complex live computations anywhere on your stack
Reactive Components express a live computation, written as an async function.
The output of a Reactive Component can be a UI element, a streaming value to be exposed via an API, or any other serializable data structure, allowing the same components to be used interchangeably on both front-end and back-end.
Unlike the components you would typically encounter in UI frameworks, Reactive Components are managed by ReactiveKit’s runtime, enabling deterministic execution, efficient incremental re-computation, and causal logging across the entire stack.
Just use await keywords wherever you read from a live data stream, and ReactiveKit ensures it’s always up-to-date with the underlying data, automatically.
await calls can be chained to combine dependent data streams intuitively: ReactiveKit performs dynamic joining in the background, so nested dependencies stay synchronized without any manual coordination.
Focus on the "what", not the "how". Build up arbitrarily complex component logic, while ReactiveKit keeps everything in sync.
Built-in intelligent dependency caching ensures only the outputs that have changed are re-evaluated, ensuring your application stays performant at scale.
Use the same familiar syntax to build dynamic user interface elements on the front-end, and to define reactive data transformations and pipelines on the backend.
Scripted Workers
Stateful, repeatable process orchestration
Scripted Workers are composable runners for deterministic procedural workflows,
suitable for both short-lived one-off tasks and long-running event-driven services.
Scripted Workers provide a structured way to orchestrate multi-step operations, ensuring each step is executed according to strict logical rules. This makes them ideal for anything from data processing pipelines to user interaction flows.
Build complex workflows using powerful control flow primitives for operation sequences, conditional branching, iterative loops, internal state management, and message-passing communication.
Determinism is enforced by operating solely on input messages and internal state, with all side effects mediated via the Intelligent Transport Layer to ensure perfect replayability.
The intuitive declarative API and powerful logic combinators make it simple to build up clear, testable, and maintainable logic.
Define synchronous and asynchronous workflows step-by-step, ensuring predictable, testable behavior and state transitions.
Interact with other workers and components via a simple actor-style message-passing API that integrates with ReactiveKit’s transport layer.
Intelligent Transport Layer
Deterministic, observable system backbone
All ReactiveKit interactions and data pass through a central event bus, producing an ordered event log with full causal traceability.
This layer is the fundamental backbone of your ReactiveKit application. More than just a record of events, the event bus effectively drives the system: new entries automatically trigger actions in Reactive Components and Scripted Workers, ensuring a logically consistent reactive system.
ReactiveKit’s transport layer correlates the event logs from distributed ReactiveKit instances, providing a unified view of system-wide operations even when services span different processes or machines.
This transport layer can be easily extended with middleware to provide complex logging, observability, recording, and more. This leads to a truly deterministic, observable, and debuggable system.
Reactive Components
Event Bus Messages
Scripted Workers
Side Effects
Batteries included
ReactiveKit is built upon a highly pluggable architecture,
allowing you to extend its capabilities or integrate with your existing stack.
- ReactiveKit core bundle
- HTTP Fetch
- State management utilities
- Timers (including retry/backoff)
- Custom extension SDK
- File System utilities
- WebSocket transport
- SSE transport
- GraphQL (Client & Server)
- gRPC (Client & Server)
- Event log CLI
- SQL (Postgres, MySQL)
- NoSQL (MongoDB, Redis)
- NATS transport
- Kafka transport
- Kubernetes orchestration
Leverage a growing library of official plugins, or even write your own.
Why Choose ReactiveKit?
Focus on building, not plumbing.
Drastically reduce boilerplate for state synchronization, concurrency, and async logic.
Built for reliability from the ground up.
Fully reactive dataflow guarantees consistent behavior across your system, making sure it never falls out of sync.
Perfectly reproducible behavior for a given sequence of external inputs.
Build real-time systems you can trust to behave predictably and reproducibly.
Every message, interaction, and state change forms an ordered, traceable history.
Replay any event sequence to verify behavior or diagnose issues.
Architected for testing at every level.
ReactiveKit test utilities make it easy to write comprehensive tests with confidence, from individual units to complex interactions.
Trace exact event sequences to diagnose issues or verify behavior.
Untangle complex edge cases with an unprecedented view into your system’s causal history.
Never miss an edge case.
The event log enables recording and replaying system interactions for in-depth debugging, regression testing, or scenario analysis.
Visualize your entire system.
Gain insights into how different components of your distributed ReactiveKit system interact, even across service boundaries.