React MQTT Workflow Manager
Open SourceBiblioteca React open-source construída para o ecossistema Flow Build — encapsula assinaturas de eventos MQTT em uma API baseada em hooks publicada no npm.
- TypeScript
- React
Flow Build é um motor de workflows de código aberto baseado em JSON, criado pela FDTE (Fundação para o Desenvolvimento Tecnológico da Engenharia), uma fundação de engenharia de São Paulo. Aplicações React que participam de um workflow do Flow Build — um formulário multi-step, um processo de aprovação, qualquer sequência orientada a eventos — precisam assinar eventos que o motor publica em um broker MQTT. O @flowbuild/react-mqtt-workflow-manager empacota toda essa lógica de integração em uma biblioteca reutilizável para que qualquer projeto cliente do ecossistema possa se conectar sem reimplementá-la.
As Restrições
- Conexões MQTT são stateful e de longa duração — fundamentalmente diferentes do ciclo de vida de componentes React, que montam e desmontam livremente
- Sem uma abstração compartilhada, cada projeto cliente do Flow Build reimplementaria do zero a conexão ao broker, o gerenciamento de assinaturas e a integração com Redux
- O estado do Redux precisava ser injetável antes da árvore React montar, exigindo uma ponte entre configuração imperativa e renderização declarativa
A Biblioteca
Construída e publicada no npm como o único ponto de integração MQTT para frontends React no ecossistema Flow Build:
WorkflowManager— provider de contexto que gerencia o ciclo de vida da conexão ao broker e envolve a aplicaçãoWorkflowManagerConfig— classe utilitária estática para uso fora do escopo de componentes:setStore,subscribe,unsubscribeuseMqtt()— retorna{ client, status, error }para visibilidade da conexão dentro de componentesuseSubscribe()/useUnsubscribe()— hooks que expõem o gerenciamento de assinaturas de tópicos seguindo os idiomas do React
Tecnologias
- TypeScript — cobertura completa de tipos, incluindo opções do cliente MQTT e formatos de retorno dos hooks
- React 18 + Context API — padrão provider para gerenciamento do ciclo de vida da conexão
- MQTT.js — cliente de broker WebSocket/WSS subjacente
- Redux Toolkit — slice
workflowManagerReducercompartilhado em toda a aplicação hospedeira