React MQTT Workflow Manager
Open SourceOpen-source React library built for the Flow Build ecosystem — wraps MQTT event subscriptions behind a hooks-based API and published to npm.
- TypeScript
- React
Flow Build is an open-source JSON-based workflow engine created by FDTE (Fundação para o Desenvolvimento Tecnológico da Engenharia), a São Paulo engineering foundation. React applications that participate in a Flow Build workflow — a multi-step form, an approval process, any event-driven sequence — must subscribe to events the engine publishes on an MQTT broker. @flowbuild/react-mqtt-workflow-manager packages all that integration logic into a single reusable library so any client project in the ecosystem can connect without reimplementing it from scratch.
The Constraints
- MQTT connections are stateful and long-lived — fundamentally different from React's component lifecycle, which mounts and unmounts freely
- Without a shared abstraction, every Flow Build client project would reimplement broker connection, subscription management, and Redux state wiring independently
- Redux state had to be injectable before the React tree mounts, requiring a bridge between imperative configuration and declarative rendering
The Library
Built and published to npm as the single MQTT integration point for React frontends in the Flow Build ecosystem:
WorkflowManager— context provider that owns the broker connection lifecycle and wraps the applicationWorkflowManagerConfig— static utility class for use outside component scope:setStore,subscribe,unsubscribeuseMqtt()— returns{ client, status, error }for connection awareness inside componentsuseSubscribe()/useUnsubscribe()— hooks that expose topic subscription management following React idioms
Technologies
- TypeScript — full type coverage including MQTT client options and hook return shapes
- React 18 + Context API — provider pattern for connection lifecycle management
- MQTT.js — underlying WebSocket/WSS broker client
- Redux Toolkit —
workflowManagerReducerslice shared across the host application