Appearance
Storage and deployment
Viaducta needs no database of its own. Flows and settings are files in each environment's repository, logs go to OpenSearch, and sign-in goes through Keycloak.
Where data lives
| Data | Kept in |
|---|---|
| Flows, types, expression settings, database links, certificates, network routes, alarm definitions, hosting tags | The repository of each execution environment: plain files on its Controller, with a history of every change. |
| Versions and promotion | Git. The Controller commits and pulls, so flows move from development to test to production through your Git server. |
| Plugins | The plugin repository: the plugin assemblies with their descriptions and readmes. |
| AI assistant threads, memory, skills, attachments and usage | A local store on the Manager, one per execution environment. |
| Logs | OpenSearch, written by the log shipper and searched from the designer. |
| Metrics | Prometheus endpoints on the processes. |
To back up an environment, back up its repository folder.
Databases for flows
The database components work with SQL Server, PostgreSQL, Oracle, MySQL, MariaDB, Db2, Snowflake and ClickHouse through one provider layer: the same Table reader, Sql query or Bulk insert works on all of them. A database link holds the connection for each environment, so a flow reads the test database in test and the production database in production without a change.
What an installation needs
- Keycloak for sign-in. The Azure image includes it, with a Viaducta realm and login theme.
- OpenSearch for logs. The Azure image includes it.
- A message bus between machines, only when processes run on more than one machine: NATS, or Kafka. Processes on one machine use Unix domain sockets and need nothing extra.
- Git, if you promote flows between environments with it.
- For Python script components, a CPython runtime on the Hosts.
No database server is required.
Deployment options
- Linux containers, with Docker or Kubernetes: the usual production setup. The Manager and the Controllers run as containers next to Keycloak and OpenSearch; each Controller starts its Hosts in its own container.
- Windows or Linux services: the Controller runs as a Windows service or under systemd.
- Azure Marketplace: one container with OpenSearch, Keycloak, the Manager, a Controller and nginx, ready to use after deployment from the Marketplace.
A single machine can run everything, with all processes talking over Unix domain sockets. Larger installations place Controllers in several data centres or customer sites, all driven by one Manager over NATS, and use cloud bridges to reach systems at sites with no direct network connection.
Tenants and environments
An installation serves one or more tenants. Each tenant has its own users and one or more execution environments, for example development, test and production, or one environment per business area with a test environment for each. Every environment has its own Controller, repository, Hosts and expression settings; the designer shows the environments the signed-in user may work with.