Introduction
Flow Director is a sophisticated DevOps platform. It enables the development, deployment, execution, and debugging of flows from a single web-based orchestration console.
Apps
Flow Director is organized in Apps. Each app is independent of 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. You can create users with different rights, which is realized through rights on menu entries.
Apps are created and managed through the System app.
Flows
Flow Director uses the Flow-Based Programming paradigm. Functionality is provided as Flow Components which are organized in Flow Component Libraries. Flow components are connected, and the result is a Flow.
Flow Component Libraries
Flow component libraries exist for many use cases. The base library is a full set of SwiftMQ's Stream Interface components 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, and so on.
You can organize flows in sub-flows that are reusable in other flows. A flow that can be used as a sub-flow is tagged with subflow and then dropped into another flow as a component. This makes repositories of reusable functionality possible.
Flow Orchestration
You can deploy flows, undeployed, updated, activated, deactivated in the router network. This is called orchestration and is done from a single orchestration console.
Flow Director automatically generates the JavaScript code during deployment, which forms a SwiftMQ Stream that is deployed at one or more SwiftMQ router nodes. It also generates and manages the configuration for it.
You can use a Flow Viewer after activating the flow to live view messages traveling between components and seeing debug information.
Web API
Flow Director allows you to create a Web API. HTTP routes can be defined with flows acting as request handlers.
Dashboards
Flows are often used for real-time streaming analytics and produce data. You can visualize this data in dynamic dashboards. A graphical dashboard editor is used to place components and connect them with the flows' data streams.
Dashboards can be marked as public which makes them viewable without the need to authenticate at Flow Director. They are ideal for creating dashboards that you can view at network operation centers, information boards, or status screens above industrial devices. You can also integrate public dashboards into custom web pages.
Dashboard Orchestration
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.
Git Integration and Automation
Flow Director is fully integrated with the version control system Git. You can use GitHub, GitLab, Bitbucket, or any Git that you can access through an HTTP URL.
The Flow Director Platform detects changes and automatically updates all internal components like flow component libs, the System app, or the template to create new apps.
User apps can be linked to or installed from a Git repository. Committed changes can be automatically distributed to all apps that are linked to that particular repository. Flows and dashboards are automatically redeployed and reactivated so that upgrades to an app can be fully automated.