Concord is a workflow server. It is the orchestration engine that connects
different systems together using scenarios and plugins created by users.
Check out the overview document for more
information about features and benefits of Concord.
Processes are the main concept of Concord. A process is an execution of
Concord Flows in an isolated environment.
A process can run in a project, thus sharing configuration and
resources (such as the KV store) with other
processes in the same project.
Processes can be suspended (typically using a form and resumed.
While suspended processes are not consuming any resources apart from the DB
disk space. See the Process Execution section for
more details about the lifecycle of Concord processes.
A project is a way to group up processes and use shared environment and
Concord provides an API and the plugin to work with
secrets such as:
- SSH keys;
- username/password pairs;
- single value secrets (e.g. API tokens);
- binary data (files)
Secrets can optionally be protected by a user-provided password.
Users and Teams
Concord can use an Active Directory/LDAP server or the local user store
for authentication. Team-based authorization can be used to secure various
Organizations are, basically, namespaces to which resources such as projects,
secrets, teams and others belong to.
Concord consists of several components. The three
main components are:
- Server - the central component, manages the process state
- Console - provides UI for project and process management,
- Agent - executes user processes;
- Database - stores the process state, all Concord entities, logs,
The Server is the central component. It provides the API which
is used to control processes, manage entities such as projects and secrets,
A minimal Concord installation contains at least one Server. Multiple servers
can run in active-active or active-passive configurations.
The Console provides user interface for managing processes, projects, secrets and
Read more about the console here.
The Agent is responsible for process execution. It receives workload from
Server and, depending on the configuration of the job,
starts processes in separate JVMs and/or Docker containers.
Depending on the configuration a single
agent can one or many job simultaneously.
A single Concord installation can have hundreds of Agents. It is also possible
to have Agents with different capabilities (e.g. running on different hardware)
connected to the single Concord instance. Which is useful when you need to run
some resource-intensive processes such as Ansible with lots of
Concord uses PostgreSQL (10.4 or higher) to
store process state, logs and entities such as projects and secrets.