ActivityConfig: {
    activities?: any;
    expire?: number;
    retryPolicy?: {
        backoffCoefficient?: number;
        maximumAttempts?: number;
        maximumInterval?: string;
        throwOnError?: boolean;
    };
    startToCloseTimeout?: string;
    taskQueue?: string;
}

Configuration settings for activities within a workflow.

Type declaration

  • Optionalactivities?: any

    Configuration for specific activities, type not yet specified

  • Optionalexpire?: number

    place holder setting; unused at this time (re: activity workflow expire configuration)

  • OptionalretryPolicy?: {
        backoffCoefficient?: number;
        maximumAttempts?: number;
        maximumInterval?: string;
        throwOnError?: boolean;
    }

    Retry policy configuration for activities

    • OptionalbackoffCoefficient?: number

      Factor by which the retry timeout increases, default is 10 (HMSH_MEMFLOW_MAX_INTERVAL)

    • OptionalmaximumAttempts?: number

      Maximum number of retry attempts, default is 5 (HMSH_MEMFLOW_MAX_ATTEMPTS)

    • OptionalmaximumInterval?: string

      Maximum interval between retries, default is '120s' (HMSH_MEMFLOW_EXP_BACKOFF)

    • OptionalthrowOnError?: boolean

      Whether to throw an error on failure, default is true

  • OptionalstartToCloseTimeout?: string

    Start to close timeout for the activity; not yet implemented

  • OptionaltaskQueue?: string

    Optional explicit task queue for activities.

    Default Behavior (no taskQueue specified): Activities use the workflow's task queue + "-activity" suffix. Example: workflow "my-workflow" → activity queue "my-workflow-activity"

    Explicit Task Queue (when specified): Activities use the specified task queue + "-activity" suffix. Useful for:

    • Shared activity pools across multiple workflows
    • Interceptors (prevents per-workflow queue creation)
    • Isolated activity worker pools
    // Default: uses workflow's task queue (backward compatible)
    const activities = MemFlow.workflow.proxyActivities<typeof activities>({
    activities,
    retryPolicy: { maximumAttempts: 3 }
    });
    // If workflow taskQueue is "orders", uses "orders-activity"

    // Explicit: shared queue for interceptors (prevents explosion)
    const { auditLog } = MemFlow.workflow.proxyActivities<typeof activities>({
    activities: { auditLog },
    taskQueue: 'shared-activities', // Uses "shared-activities-activity"
    retryPolicy: { maximumAttempts: 3 }
    });