Event-Driven Architecture
Process workflows based on events with a flexible node-based architecture. Workflows wait for events and react accordingly.
A node-based event-driven workflow engine with a fully customizable React editor
pnpm add @omega-flow/engine @omega-flow/types
pnpm add @omega-flow/editor # for the visual editorimport { ReactFlow, Background, Controls, Panel } from "@xyflow/react";
import {
WorkflowEditor,
NodesPanel,
DetailPanel,
ControlPanel,
useNodes,
useEdges,
useNodeRegistry,
useDragAndDrop,
defaultNodeTypes,
} from "@omega-flow/editor";
function MyEditor() {
const { nodes, onNodesChange } = useNodes();
const { edges, onEdgesChange, onConnect } = useEdges();
const { reactFlowNodeTypes } = useNodeRegistry();
const { onDragOver, onDrop } = useDragAndDrop();
return (
<ReactFlow
nodes={nodes}
edges={edges}
onNodesChange={onNodesChange}
onEdgesChange={onEdgesChange}
onConnect={onConnect}
onDragOver={onDragOver}
onDrop={onDrop}
nodeTypes={reactFlowNodeTypes}
>
<Background />
<Controls />
<Panel position="top-left">
<NodesPanel />
</Panel>
<Panel position="bottom-right">
<DetailPanel />
</Panel>
</ReactFlow>
);
}
function App() {
return (
<WorkflowEditor nodeTypes={defaultNodeTypes}>
<MyEditor />
</WorkflowEditor>
);
}