Event System & State Management: Tracking Issue
Author: masenfCreated Mar 25, 2026Updated Sep 14, 2026
Labelsroadmap
Overview
This is the tracking issue for the Event System & State Management initiative — the largest architectural refactor for v1.0, touching event processing, state synchronization, and the developer-facing API.
Canonical roadmap: Reflex Framework Roadmap § 1
Goals
- Introduce
EventContextas the foundational execution primitive (owns state lock, manages backend event queue, tracks mutability scope) - Move the event queue to the backend, eliminating frontend round-trips for chained events
- Redesign
EventHandlerwith a global registry, awaitable semantics, and partial-arg call convention - Replace JSONPatch with Replicache-based state synchronization (optimistic UI, offline support, conflict resolution)
- Extract dirty/accessed var tracking into a standalone mixin independent of
rx.State - Make
rx.Fielda first-class descriptor enabling composable arbitrary states withoutrx.Stateinheritance - Expose event handlers as HTTP endpoints with auto-generated OpenAPI spec for agent/MCP integration
- Add full-stack OpenTelemetry instrumentation
Sub-Issues
Core Event Processing
- ENG-9028 — EventContext & Backend Event Queue ⚠️ BLOCKING (no GitHub issue yet)
- ENG-9162 ENG-9162
- ENG-9163 ENG-9163
- ENG-9164 ENG-9164
- ENG-6436 — Event Loop Blocking Detection (no GitHub issue yet)
Endpoints & Observability
State & Field System
- ENG-9167 ENG-9167
- ENG-6223 —
rx.Fieldas First-Class Descriptor (no GitHub issue yet) - ENG-9169 ENG-9169
- ENG-9170 ENG-9170
- ENG-9198 ENG-9198
Other
Dependencies
The EventContext is the most critical piece and blocks most other work in this section:
- Sync executor needs a context to propagate into threads
- HTTP endpoints needs a context per POST request
- Var tracking mixin enforces mutation via active EventContext
- Field setters and observers execute/queue within a context
- Replicache processes mutations within an EventContext
Source: reflex-dev/reflex