Flow Director is a new generation flow-based Event Streaming Platform that combines existing messaging products, databases and REST services.
a sophisticated DevOps platform for all kind of users, from beginners to experts. It enables the development, deployment, execution and debugging of flows from a single web-based orchestration console,
an Integration platform that can connect all messaging systems (cloud and on-premise), databases, RESTful services, and can present any flow as a RESTful web service,
powerful Analytics capabilities, delivered as flow components that produce the data for real-time dashboards,
an internal runtime based on SwiftMQ CE that natively supports JMS, AMQP, and MQTT protocols so that those clients can directly connect to Flow Director,
an unlimited scalability by just adding more SwiftMQ nodes to the network.
Flow Director in Detail
Flow Director is organized in Apps. Each app is independent from other apps and fully isolated, even if flows from different apps run on the same router node.
An app contains the complete authentication and authorization for this particular app. A user logs into an app, not into Flow Director. Users can be created with different rights which is realized through rights on menu entries.
Apps are created and managed through the Flow Director Management App.
Flow Director uses the Flow Based Programming paradigm to create Streams. Functionality is provided as Flow Components which are organized in Flow Component Libraries. Flow components are connected together and the result is a Flow.
Flow component libraries exists for many use cases. The base library are a full set of components of SwiftMQ's Stream Interface to intercept, analyze, process and output message streams flowing through a SwiftMQ router. Other libraries produce dashboard output streams, access JDBC databases, provide a REST client with predefined services (e.g. Slack, PayPal, MailChimp) and so on.
Flows can be organized in sub flows which are reusable in other flows. A flow that can be used as a sub flow is tagged
subflow and can then be dropped into another flow as a component. This makes repositories of reusable functionality
Flows can be deployed, undeployed, updated, activated, deactivated in the router network. This is called orchestration and is done from a single orchestration console.
A Flow Viewer can be used after activation of the flow to live view messages travelling between components and to see debug information.
Flow Director extends SwiftMQ's communication capabilities by allowing you to create a Web API. HTTP routes can be defined with flows acting as request handlers.
Flows are often used for realtime streaming analytics and produce data. This data can be visualized in dynamic dashboards. A graphical dashboard editor is used to place components and to connect them with the data streams produced from flows.
Dashboards can be marked as
public which makes them viewable without the need to authenticate at Flow Director. They are
ideal to create dashboards that can be viewed in network operation centers, on information boards or on status
screens above industrial devices. Public dashboards can also be integrated into custom web pages.
Like flows, dashboards can be orchestrated from a single orchestration console. They can be connected to a particular router as well as to all routers dynamically. This is used if the same flows run on all routers of a network.
Flows, flow component libraries and dashboards are stored at the Flow Director server under the respective app. Complete apps as well as single or sets of flows and dashboards can be exported and imported to another Flow Director instance with drag and drop. This makes it possible to develop on one Flow Director server and then move it to a production Flow Director server.