# Workflow Engine Concepts Workflow Engine provides seventeen concepts organised into two groups. The seven core concepts cover everything you need to configure, run, and persist a workflow. The ten additional concepts control what happens when a transition fires, handle advanced scenarios, or extend the workflow with logging, localization, and scheduling. Use this page to find the concept you need and jump to its full description. ## Core Concepts These seven concepts are required for every Workflow Engine integration. - [Activity](https://docs.workflowengine.io/get-started/concepts/activity/): A stable state where the process waits for input. Think of it as a step in the process, like Draft, Review, or Approved. - [Transition](https://docs.workflowengine.io/get-started/concepts/transition/): A directed connection between two activities. A transition fires when its trigger activates and its conditions pass. - [Command](https://docs.workflowengine.io/get-started/concepts/command/): A named action that advances the process from one activity to the next. A command can be triggered by a user or by the system. - [Scheme](https://docs.workflowengine.io/get-started/concepts/scheme/): The blueprint that defines a process: its activities, transitions, and commands. One scheme can spawn many process instances. - [Process Instance](https://docs.workflowengine.io/get-started/concepts/process-instance/): A single running instance of a scheme. Each instance tracks its own current activity and history. - [Workflow Runtime](https://docs.workflowengine.io/get-started/concepts/workflow-runtime/): The engine that executes schemes, manages process instances, and fires transitions. - [Persistence](https://docs.workflowengine.io/get-started/concepts/persistence/): The database adapter that stores schemes, instances, history, timers, and parameters. ## Additional Concepts How transitions get triggered, gated, enriched with code, and extended with metadata, logging, localization, and scheduling. - [Action](https://docs.workflowengine.io/get-started/concepts/action/): C# code that runs when a transition fires. Use actions to send emails, call APIs, update databases, or any side-effect. - [Parameter](https://docs.workflowengine.io/get-started/concepts/parameter/): Named data attached to a process instance. Parameters carry values through the lifecycle. - [Condition](https://docs.workflowengine.io/get-started/concepts/condition/): A guard on a transition that decides whether it actually fires. A transition with a failing condition stays dormant. - [Rule](https://docs.workflowengine.io/get-started/concepts/rule/): A permission check that determines which users or roles can execute a command from the current activity. - [Timer](https://docs.workflowengine.io/get-started/concepts/timer/): An automatic trigger that fires a transition after a delay or on a schedule, without any user action. - [Subprocess](https://docs.workflowengine.io/get-started/concepts/subprocess/): A child process instance spawned by a parent. The parent can wait for the subprocess to complete before continuing. - [Annotation](https://docs.workflowengine.io/get-started/concepts/annotation/): Key-value metadata attached to activities and transitions in a scheme. - [Process Logs](https://docs.workflowengine.io/get-started/concepts/process-logs/): A record of events and errors scoped to a single process instance. - [Localization](https://docs.workflowengine.io/get-started/concepts/localization/): Translations for activity names, command names, and parameter labels displayed to users. - [Work Calendar](https://docs.workflowengine.io/get-started/concepts/work-calendar/): A schedule that defines working days and hours for calendar-aware timers. ## Frequently asked questions **Do I need to understand all concepts before building my first workflow?** No. The seven core concepts are enough to build and run a workflow. Behaviour concepts can be added as your workflows need conditions, custom code, or automatic triggers. **Which concepts are required for a minimal workflow?** Activity, Transition, Command, Scheme, Process Instance, Workflow Runtime, and Persistence. Create a scheme with at least two activities and one transition, configure the runtime with a persistence provider, then create an instance and execute a command. **Can I use Workflow Engine without a database?** No. The runtime requires a persistence provider to store schemes, instances, and history. SQLite is the lightest option for local development. **What is the difference between a Condition and a Rule?** A condition guards whether a transition fires - it evaluates data or state. A rule guards who can fire a transition - it evaluates the user's identity. Both run during transition evaluation but serve different purposes. ## See also - [Web API Quick Start](https://docs.workflowengine.io/get-started/install-workflow-engine/): Start coding with the built-in REST API. - [Your First Workflow](https://docs.workflowengine.io/get-started/create-your-first-workflow/): Define a minimal scheme and create a process instance.