# Class MultiServerServiceRunner OptimaJet.Workflow.Core.Runtime.ServiceRunners.MultiServerServiceRunner Provides a service runner implementation for multi-server workflow runtime execution. Namespace: [OptimaJet.Workflow.Core.Runtime.ServiceRunners](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.ServiceRunners/) ```csharp public sealed class MultiServerServiceRunner : IWorkflowServiceRunner ``` ## Type Hierarchy - MultiServerServiceRunner Current type - Implemented interfaces - [IWorkflowServiceRunner](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.ServiceRunners/IWorkflowServiceRunner/) ## Constructors `public MultiServerServiceRunner(WorkflowRuntime runtimeOwner, IMultiServerSettingsSource settingsSource)` Initializes a new multi-server service runner for the specified runtime. ### Parameters | Name | Type | Description | | --- | --- | --- | | `runtimeOwner` | `WorkflowRuntime` | The runtime instance that owns this service runner. | | `settingsSource` | `IMultiServerSettingsSource` | The source of [MultiServerSettings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.Settings/MultiServerSettings/) for this runtime. | ### Remarks The constructor configures and registers the alive and service timers required for periodic coordination work in multi-server mode. ## Properties `public bool IsSupportsMultiServer { get; }` Gets a value indicating that the runner is designed for multi-server execution. `public IMultiServerSettingsSource SettingsSource { get; }` Gets the settings source used to read multi-server runtime configuration. ## Methods `public Task StartAsync(ITimerManager manager)` Starts the multi-server service runner. ### Parameters | Name | Type | Description | | --- | --- | --- | | `manager` | `ITimerManager` | The timer manager passed by [WorkflowRuntime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowRuntime/) startup flow. | ### Returns | Type | Description | | --- | --- | | `Task` | A task that is completed after startup checks and initialization are finished. | ### Exceptions | Type | Description | | --- | --- | | `LicenseException` | Thrown when the current runtime count exceeds [MultiServerSettings.MaxNumberOfInstances](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.Settings/MultiServerSettings/). | | `Exception` | Thrown when startup status checks exceed the configured attempt limit. | ### Remarks This implementation validates license limits, performs startup runtime status checks, and initializes the alive and service timer cycle for this runtime. The `manager` argument is not used by this implementation. ## Remarks The runner validates startup conditions, coordinates the runtime status lifecycle, and registers the alive and service timers used for process coordination. [Previous MultiServerRestorer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.ServiceRunners/MultiServerRestorer/) [Next RestorerBase](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.ServiceRunners/RestorerBase/)