interface StreamConfig {
    appId?: string;
    batchSize?: number;
    maxRetries?: number;
    namespace?: string;
    nats?: {
        ackWait?: number;
        deliverPolicy?:
            | "all"
            | "last"
            | "new"
            | "byStartSequence"
            | "byStartTime";
        durableName?: string;
        jetstream?: boolean;
    };
    postgres?: {
        cleanupInterval?: number;
        enableNotifications?: boolean;
        notificationFallbackInterval?: number;
        notificationTimeout?: number;
        partitionInterval?: "daily" | "weekly" | "monthly";
        pollInterval?: number;
        vacuumInterval?: number;
    };
    provider?: StreamProviderType;
    retry?: RetryPolicy;
    securedWorker?: boolean;
    sqs?: {
        deadLetterQueue?: string;
        dlqArn?: string;
        messageRetentionPeriod?: number;
        visibilityTimeout?: number;
        waitTimeSeconds?: number;
    };
    timeout?: number;
}

Properties

appId?: string
batchSize?: number
maxRetries?: number
namespace?: string
nats?: {
    ackWait?: number;
    deliverPolicy?:
        | "all"
        | "last"
        | "new"
        | "byStartSequence"
        | "byStartTime";
    durableName?: string;
    jetstream?: boolean;
}
postgres?: {
    cleanupInterval?: number;
    enableNotifications?: boolean;
    notificationFallbackInterval?: number;
    notificationTimeout?: number;
    partitionInterval?: "daily" | "weekly" | "monthly";
    pollInterval?: number;
    vacuumInterval?: number;
}
retry?: RetryPolicy

Default retry policy for all streams in this app. Can be overridden per message using PublishMessageConfig.

{
maximumAttempts: 5,
backoffCoefficient: 2,
maximumInterval: '300s',
}
securedWorker?: boolean

When true, worker stream operations use SECURITY DEFINER stored procedures instead of raw SQL. Enabled automatically when the worker connects with scoped workerCredentials.

sqs?: {
    deadLetterQueue?: string;
    dlqArn?: string;
    messageRetentionPeriod?: number;
    visibilityTimeout?: number;
    waitTimeSeconds?: number;
}
timeout?: number