---
title: Effect MQ API
description: Generated public TypeScript reference for @relkit/effect-mq.
search:
  exclude: true
sidebar:
  icon: braces
---

{/* Generated by apps/docs/scripts/generate.ts. Do not edit. */}

For configuration and examples, read [schedules](/docs/modules/jobs/schedules), [docker](/docs/modules/jobs/docker), [providers](/docs/modules/jobs/providers).

## Public imports

- `@relkit/effect-mq` — 7 exports
- `@relkit/effect-mq/runtime` — 22 exports
- `@relkit/effect-mq/local-recipe` — 1 exports
- `@relkit/effect-mq/deployment` — 4 exports

## All exported APIs

Names link to their complete contracts. Re-exports share their original contract; legacy exports keep their separate identity. Examples link to the API's inline sample, a maintained repository usage, or the shared module walkthrough.

| API                                                                                                               | Kind  | Import from                      | Example                                                                                                                          |
| ----------------------------------------------------------------------------------------------------------------- | ----- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| [createEffectMqJob](/docs/api/integrations/effect-mq#createeffectmqjob)                                           | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [createEffectMqPostgresLayer](/docs/api/integrations/effect-mq#createeffectmqpostgreslayer)                       | Value | `@relkit/effect-mq/runtime`      | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/jobs/compatibility/effect-mq-native.ts#L39)                   |
| [createEffectMqPostgresNativeClient](/docs/api/integrations/effect-mq#createeffectmqpostgresnativeclient)         | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [createEffectMqPostgresSchema](/docs/api/integrations/effect-mq#createeffectmqpostgresschema)                     | Value | `@relkit/effect-mq/runtime`      | [Source example](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/tests/postgres-listen.test.ts#L122) |
| [createEffectMqRuntime](/docs/api/integrations/effect-mq#createeffectmqruntime)                                   | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [createEffectMqScheduleOperations](/docs/api/integrations/effect-mq#createeffectmqscheduleoperations)             | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [createEffectMqWorker](/docs/api/integrations/effect-mq#createeffectmqworker)                                     | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [createEffectMqWorkerLayer](/docs/api/integrations/effect-mq#createeffectmqworkerlayer)                           | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [deploymentProfile](/docs/api/integrations/effect-mq#deploymentprofile)                                           | Value | `@relkit/effect-mq/deployment`   | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [effectMq](/docs/api/integrations/effect-mq#effectmq)                                                             | Value | `@relkit/effect-mq`              | [Source example](https://github.com/rel-kit/relkit/blob/main/apps/docs/examples/jobs/providers/effect-mq-config.ts#L12)          |
| [EffectMqAdapter](/docs/api/integrations/effect-mq#effectmqadapter-type-alias)                                    | Type  | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqBehavior](/docs/api/integrations/effect-mq#effectmqbehavior-type-alias)                                  | Type  | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [effectMqConnectionContract](/docs/api/integrations/effect-mq#effectmqconnectioncontract)                         | Value | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqDeploymentProfile](/docs/api/integrations/effect-mq#effectmqdeploymentprofile-interface)                 | Type  | `@relkit/effect-mq/deployment`   | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [effectMqIntegration](/docs/api/integrations/effect-mq#effectmqintegration)                                       | Value | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqJobDefinition](/docs/api/integrations/effect-mq#effectmqjobdefinition-interface)                         | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqJobOptions](/docs/api/integrations/effect-mq#effectmqjoboptions-interface)                               | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [effectMqLocalRecipe](/docs/api/integrations/effect-mq#effectmqlocalrecipe)                                       | Value | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqNativeClient](/docs/api/integrations/effect-mq#effectmqnativeclient-interface)                           | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqOptions](/docs/api/integrations/effect-mq#effectmqoptions-interface)                                     | Type  | `@relkit/effect-mq`              | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqPostgresNativeOptions](/docs/api/integrations/effect-mq#effectmqpostgresnativeoptions-interface)         | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqPostgresSchema](/docs/api/integrations/effect-mq#effectmqpostgresschema-interface)                       | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqRuntime](/docs/api/integrations/effect-mq#effectmqruntime-interface)                                     | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqRuntimeOptions](/docs/api/integrations/effect-mq#effectmqruntimeoptions-interface)                       | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqScheduleBridge](/docs/api/integrations/effect-mq#effectmqschedulebridge-interface)                       | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqScheduleStore](/docs/api/integrations/effect-mq#effectmqschedulestore-interface)                         | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqTaskDefinition](/docs/api/integrations/effect-mq#effectmqtaskdefinition-interface)                       | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqWorkerHandle](/docs/api/integrations/effect-mq#effectmqworkerhandle-interface)                           | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqWorkerPublication](/docs/api/integrations/effect-mq#effectmqworkerpublication-interface)                 | Type  | `@relkit/effect-mq/deployment`   | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [EffectMqWorkerRegistrationOptions](/docs/api/integrations/effect-mq#effectmqworkerregistrationoptions-interface) | Type  | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [localRecipe](/docs/api/integrations/effect-mq#localrecipe-1)                                                     | Value | `@relkit/effect-mq/local-recipe` | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [nativeWorkerPublication](/docs/api/integrations/effect-mq#nativeworkerpublication)                               | Value | `@relkit/effect-mq/deployment`   | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [runEffectMq](/docs/api/integrations/effect-mq#runeffectmq)                                                       | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |
| [runtimeIntegration](/docs/api/integrations/effect-mq#runtimeintegration)                                         | Value | `@relkit/effect-mq/runtime`      | [Module example](/docs/modules/jobs/schedules)                                                                                   |

## `build-catalog.ts`

### effectMqSdk

**Signature**

```ts
declare const effectMqSdk: "effect-mq@0.7.0";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/build-catalog.ts#L3)

### effectVersion

**Signature**

```ts
declare const effectVersion: "4.0.1";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/build-catalog.ts#L2)

## `index.ts`

### EffectMqDeploymentProfile (interface)

**Signature**

```ts
export interface EffectMqDeploymentProfile {
  readonly provider: "effect-mq";
  readonly compatibility: "native";
  readonly adapterId: "effect-mq";
  readonly effect: typeof effectVersion;
  readonly sdk: typeof effectMqSdk;
  readonly database: "postgresql";
  readonly durableSleep: false;
  readonly workerRuntime: "bun";
  readonly executionLimits: Readonly<{
    readonly inputBytes: number;
    readonly progressBytes: number;
    readonly maxRunList: number;
  }>;
  readonly policyIdentity: readonly string[];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/deployment/index.ts#L3)

### EffectMqWorkerPublication (interface)

**Signature**

```ts
export interface EffectMqWorkerPublication {
  readonly provider: "effect-mq";
  readonly mechanism: "effect-mq-sdk";
  readonly taskId: string;
  readonly taskVersion: string;
  readonly buildId: string;
  readonly serviceGeneration: string;
  readonly entrypoint: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/deployment/index.ts#L20)

### deploymentProfile

**Signature**

```ts
declare const deploymentProfile: EffectMqDeploymentProfile;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/deployment/index.ts#L30)

### nativeWorkerPublication

**Signature**

```ts
declare const nativeWorkerPublication: (
  value: Omit<EffectMqWorkerPublication, "provider" | "mechanism">,
) => EffectMqWorkerPublication;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/deployment/index.ts#L50)

## `index.ts`

### EffectMqAdapter (type alias)

**Signature**

```ts
type EffectMqAdapter<Options extends EffectMqOptions = EffectMqOptions> = ProviderAdapter<
  typeof job,
  "effect-mq",
  ProviderConnectionValues,
  ProviderBehavior<EffectMqBehavior>
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L46)

### EffectMqBehavior (type alias)

**Signature**

```ts
type EffectMqBehavior = JobsServiceBehavior;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L45)

### EffectMqOptions (interface)

**Signature**

```ts
export interface EffectMqOptions extends JobsServiceOptions {
  readonly postgresUrl?: string | TextReference | SecretReference;
  readonly schema?: string;
  readonly tablePrefix?: string;
  readonly queue?: string;
  readonly native?: Readonly<Record<string, import("@relkit/contracts").JsonValue>>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L37)

### effectMq

**Signature**

```ts
declare const effectMq: <const Options extends EffectMqOptions = EffectMqOptions>(
  options?: Options,
) => EffectMqAdapter<Options>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L57)

### effectMqConnectionContract

**Signature**

```ts
declare const effectMqConnectionContract: ProviderConnectionContract;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L54)

### effectMqIntegration

**Signature**

```ts
declare const effectMqIntegration: IntegrationReference<"effect-mq">;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L53)

### effectMqLocalRecipe

**Signature**

```ts
declare const effectMqLocalRecipe: ProviderLocalRecipeReference;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/index.ts#L55)

## `job.ts`

### EffectMqJobDefinition (interface)

**Signature**

```ts
export interface EffectMqJobDefinition {
  readonly job: ReturnType<typeof Job.make>;
  readonly workerLayer: ReturnType<typeof Worker.layer>;
  readonly handlerLayer: unknown;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/job.ts#L21)

### EffectMqJobOptions (interface)

**Signature**

```ts
export interface EffectMqJobOptions {
  readonly name: string;
  readonly queue?: string;
  readonly attempts?: number;
  readonly backoff?: {
    readonly type: "fixed" | "exponential";
    readonly delay: Duration.Input;
    readonly factor?: number;
  };
  readonly handler: (
    input: unknown,
    signal: AbortSignal,
    context: Worker.JobContext,
  ) => Promise<unknown>;
  readonly worker?: Parameters<typeof Worker.layer>[0];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/job.ts#L4)

### createEffectMqJob

Builds a schema-first native Job.make definition without exposing app schemas.

**Signature**

```ts
declare const createEffectMqJob: (options: EffectMqJobOptions) => EffectMqJobDefinition;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/job.ts#L28)

### createEffectMqWorkerLayer

**Signature**

```ts
declare const createEffectMqWorkerLayer: (
  options?: Parameters<typeof Worker.layer>[0],
) => ReturnType<typeof Worker.layer>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/job.ts#L55)

## `index.ts`

### localRecipe

**Signature**

```ts
declare const localRecipe: Readonly<{
  kind: "local-service-recipe";
  protocolVersion: 2;
  integrationId: "effect-mq";
  recipeId: "effect-mq-docker";
  recipeVersion: 2;
  materializerId: "docker";
  containers: ReadonlyArray<
    Readonly<{
      id: "postgres";
      image: "postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685";
      ports: Readonly<{ postgres: 5432 }>;
      volumes: ReadonlyArray<{ name: string; mountPath: string }>;
      environment: Readonly<{
        POSTGRES_DB: Readonly<{ value: "relkit" }>;
        POSTGRES_USER: Readonly<{ value: "relkit" }>;
        POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }>;
      }>;
      health: Readonly<{ command: Array<string>; intervalMs: 250; timeoutMs: 2000; retries: 60 }>;
      networkAliases: ReadonlyArray<string>;
    }>
  >;
  init: ReadonlyArray<
    Readonly<{
      id: "postgres-ready";
      image: "postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685";
      dependsOn: ReadonlyArray<string>;
      command: ReadonlyArray<string>;
      environment: Readonly<{ POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }> }>;
    }>
  >;
  workers: ReadonlyArray<
    Readonly<{
      id: "worker";
      image: "oven/bun:1.3.10@sha256:b86c67b531d87b4db11470d9b2bd0c519b1976eee6fcd71634e73abfa6230d2e";
      command: ReadonlyArray<string>;
      dependsOn: ReadonlyArray<string>;
      ports: Readonly<{ api: 3000 }>;
      health: Readonly<{ command: Array<string>; intervalMs: 500; timeoutMs: 2000; retries: 120 }>;
      networkAliases: ReadonlyArray<string>;
      hostAliases: Readonly<{ "host.docker.internal": "host-gateway" }>;
      environment: Readonly<{
        POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }>;
        RELKIT_EFFECT_MQ_MIGRATIONS: Readonly<{ value: "owned-by-jobs-service" }>;
      }>;
    }>
  >;
  volumes: Readonly<{
    postgres: Readonly<{ mountPath: "/var/lib/postgresql/data"; persistent: true }>;
  }>;
  generatedSecrets: Readonly<{ postgresPassword: Readonly<{ bytes: 24; encoding: "hex" }> }>;
  network: Readonly<{ internal: false }>;
  ownership: Readonly<{ scope: "project"; retainVolumes: true }>;
  outputs: ({
    ports,
    secrets,
  }: LocalServiceRecipeOutputContext) => Readonly<{ postgresUrl: string }>;
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local-recipe/index.ts#L1)

## `local-support.ts`

### BUN_IMAGE

**Signature**

```ts
declare const BUN_IMAGE: "oven/bun:1.3.10@sha256:b86c67b531d87b4db11470d9b2bd0c519b1976eee6fcd71634e73abfa6230d2e";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local-support.ts#L3)

### POSTGRES_IMAGE

**Signature**

```ts
declare const POSTGRES_IMAGE: "postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local-support.ts#L1)

### number

**Signature**

```ts
declare const number: (value: unknown, name: string) => number;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local-support.ts#L11)

### text

**Signature**

```ts
declare const text: (value: unknown, name: string) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local-support.ts#L6)

## `local.ts`

### localRecipe

**Signature**

```ts
declare const localRecipe: Readonly<{
  kind: "local-service-recipe";
  protocolVersion: 2;
  integrationId: "effect-mq";
  recipeId: "effect-mq-docker";
  recipeVersion: 2;
  materializerId: "docker";
  containers: ReadonlyArray<
    Readonly<{
      id: "postgres";
      image: "postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685";
      ports: Readonly<{ postgres: 5432 }>;
      volumes: ReadonlyArray<{ name: string; mountPath: string }>;
      environment: Readonly<{
        POSTGRES_DB: Readonly<{ value: "relkit" }>;
        POSTGRES_USER: Readonly<{ value: "relkit" }>;
        POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }>;
      }>;
      health: Readonly<{ command: Array<string>; intervalMs: 250; timeoutMs: 2000; retries: 60 }>;
      networkAliases: ReadonlyArray<string>;
    }>
  >;
  init: ReadonlyArray<
    Readonly<{
      id: "postgres-ready";
      image: "postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685";
      dependsOn: ReadonlyArray<string>;
      command: ReadonlyArray<string>;
      environment: Readonly<{ POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }> }>;
    }>
  >;
  workers: ReadonlyArray<
    Readonly<{
      id: "worker";
      image: "oven/bun:1.3.10@sha256:b86c67b531d87b4db11470d9b2bd0c519b1976eee6fcd71634e73abfa6230d2e";
      command: ReadonlyArray<string>;
      dependsOn: ReadonlyArray<string>;
      ports: Readonly<{ api: 3000 }>;
      health: Readonly<{ command: Array<string>; intervalMs: 500; timeoutMs: 2000; retries: 120 }>;
      networkAliases: ReadonlyArray<string>;
      hostAliases: Readonly<{ "host.docker.internal": "host-gateway" }>;
      environment: Readonly<{
        POSTGRES_PASSWORD: Readonly<{ secret: "postgresPassword" }>;
        RELKIT_EFFECT_MQ_MIGRATIONS: Readonly<{ value: "owned-by-jobs-service" }>;
      }>;
    }>
  >;
  volumes: Readonly<{
    postgres: Readonly<{ mountPath: "/var/lib/postgresql/data"; persistent: true }>;
  }>;
  generatedSecrets: Readonly<{ postgresPassword: Readonly<{ bytes: 24; encoding: "hex" }> }>;
  network: Readonly<{ internal: false }>;
  ownership: Readonly<{ scope: "project"; retainVolumes: true }>;
  outputs: ({
    ports,
    secrets,
  }: LocalServiceRecipeOutputContext) => Readonly<{ postgresUrl: string }>;
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/local.ts#L108)

## `postgres-listen.ts`

## `postgres.ts`

Builds lazy native PostgreSQL job-store Layers with scoped driver ownership and explicit timestamp compatibility.

### EffectMqPostgresSchema

**Signature**

```ts
declare const EffectMqPostgresSchema: EffectMqPostgresSchema;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/postgres.ts#L17)

### createEffectMqPostgresLayer

Builds the native PostgreSQL store Layer; the calling application owns schema migration and Layer lifetime.

**Signature**

```ts
declare const createEffectMqPostgresLayer: (
  postgresUrl: string,
  prefix?: string,
) => Layer.Layer<
  JobStore.JobStore,
  JobStore.JobStoreError | Layer.Error<ReturnType<typeof PgClient.layer>>
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/postgres.ts#L44)

### createEffectMqPostgresSchema

Builds the existing native store's complete schema without opening a database connection.

**Signature**

```ts
declare const createEffectMqPostgresSchema: (prefix?: string) => EffectMqPostgresSchema;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/postgres.ts#L24)

### runEffectMq

Existing native Promise edge; callers supply and own the complete store/worker Layer lifetime.

**Signature**

```ts
declare const runEffectMq: <A, E>(
  effect: Effect.Effect<A, E>,
  options?: Effect.RunOptions | undefined,
) => Promise<A>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/postgres.ts#L86)

## `postgres.types.ts`

Describes the complete native Drizzle PostgreSQL schema used by the scoped effect-mq integration.

### EffectMqPostgresSchema (interface)

Native table handles retain the SDK's exact row, query and foreign-key contracts.

**Signature**

```ts
export interface EffectMqPostgresSchema {
  /** Durable job state and acceptance metadata. */
  readonly jobs: ReturnType<typeof mqJobs>;
  /** Ordered native attempt ledger. */
  readonly attempts: ReturnType<typeof mqJobAttempts>;
  /** Provider-owned schedule definitions and next occurrences. */
  readonly schedules: ReturnType<typeof mqSchedules>;
  /** Native queue pause controls. */
  readonly queues: ReturnType<typeof mqQueueControl>;
  /** Native deduplication keys and windows. */
  readonly dedupe: ReturnType<typeof mqDedupe>;
  /** Durable child-flow admission and completion state. */
  readonly flowChildren: ReturnType<typeof mqFlowChildren>;
  /** Provider-owned parent-flow completion outbox. */
  readonly flowOutbox: ReturnType<typeof mqFlowOutbox>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/postgres.types.ts#L13)

## `index.ts`

### "../job.js" (namespace export)

Re-exports all named exports from the "../job.js" module.

**Signature**

```ts
export * from "../job.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L21)

### "../postgres.js" (namespace export)

Re-exports all named exports from the "../postgres.js" module.

**Signature**

```ts
export * from "../postgres.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L22)

### "./native.js" (namespace export)

Re-exports all named exports from the "./native.js" module.

**Signature**

```ts
export * from "./native.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L18)

### "./schedules.js" (namespace export)

Re-exports all named exports from the "./schedules.js" module.

**Signature**

```ts
export * from "./schedules.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L19)

### "./worker.js" (namespace export)

Re-exports all named exports from the "./worker.js" module.

**Signature**

```ts
export * from "./worker.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L20)

### EffectMqRuntime (interface)

**Signature**

```ts
export interface EffectMqRuntime extends JobsAdapterRuntime {
  readonly registerWorker: (options: EffectMqWorkerRegistrationOptions) => EffectMqWorkerHandle;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L36)

### EffectMqRuntimeOptions (interface)

**Signature**

```ts
export interface EffectMqRuntimeOptions {
  readonly native?: EffectMqNativeClient;
  readonly postgresUrl?: string;
  readonly tablePrefix?: string;
  readonly queue?: string;
  readonly schedules?: NativeScheduleOperations;
  readonly pollIntervalMs?: number;
  readonly maxPolls?: number;
  readonly readTimeoutMs?: number;
  readonly serviceOptions?: JobsServiceOptions;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L24)

### createEffectMqRuntime

**Signature**

```ts
declare const createEffectMqRuntime: (options?: EffectMqRuntimeOptions) => EffectMqRuntime;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L40)

### runtimeIntegration

**Signature**

```ts
declare const runtimeIntegration: RuntimeProviderIntegration<"effect-mq">;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/index.ts#L129)

## `native.ts`

### EffectMqNativeClient (interface)

**Signature**

```ts
export interface EffectMqNativeClient {
  readonly submit: (request: NativeSubmission, context: OperationContext) => Promise<NativeReceipt>;
  readonly get: (runId: string, context: OperationContext) => Promise<NativeRun>;
  readonly list: (query: NativeRunQuery, context: OperationContext) => Promise<NativeRunPage>;
  readonly cancel: (
    runId: string,
    operationId: string,
    context: OperationContext,
  ) => Promise<NativeControlReceipt>;
  readonly retry: (
    request: Parameters<NonNullable<JobsAdapterRuntime["retry"]>>[0],
    context: OperationContext,
  ) => Promise<NativeControlReceipt>;
  readonly observe?: JobsAdapterRuntime["observe"];
  readonly schedules?: NativeScheduleOperations;
  readonly close?: () => Promise<void>;
  readonly registerWorker?: (options: EffectMqWorkerRegistrationOptions) => EffectMqWorkerHandle;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/native.ts#L24)

### EffectMqPostgresNativeOptions (interface)

**Signature**

```ts
export interface EffectMqPostgresNativeOptions {
  readonly postgresUrl: string;
  readonly tablePrefix?: string;
  readonly queue?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/native.ts#L43)

### createEffectMqPostgresNativeClient

**Signature**

```ts
declare const createEffectMqPostgresNativeClient: (
  options: EffectMqPostgresNativeOptions,
) => EffectMqNativeClient;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/native.ts#L49)

## `observe.ts`

### EffectMqObservationOptions (interface)

**Signature**

```ts
export interface EffectMqObservationOptions {
  readonly pollIntervalMs?: number;
  readonly maxPolls?: number;
  readonly readTimeoutMs?: number;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/observe.ts#L9)

### observeEffectMqRun

**Signature**

```ts
declare const observeEffectMqRun: (
  get: EffectMqNativeClient["get"],
  request: NativeWatchRequest,
  context: OperationContext,
  options: EffectMqObservationOptions,
) => AsyncIterable<NativeObservation>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/observe.ts#L15)

## `postgres-operations-support.ts`

### object

**Signature**

```ts
declare const object: (value: unknown) => Record<string, any> | undefined;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations-support.ts#L40)

### submissionId

**Signature**

```ts
declare const submissionId: (request: NativeSubmission) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations-support.ts#L3)

### submissionMetadata

**Signature**

```ts
declare const submissionMetadata: (
  request: NativeSubmission,
  context: OperationContext,
) => Readonly<Record<string, string>>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations-support.ts#L7)

### text

**Signature**

```ts
declare const text: (value: unknown, fallback: string) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations-support.ts#L46)

## `postgres-operations.ts`

### NativeReceiptValue (type alias)

**Signature**

```ts
type NativeReceiptValue = NativeSubmissionReceipt;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L157)

### cancelEffectMqRun

**Signature**

```ts
declare const cancelEffectMqRun: (
  state: EffectMqPostgresState,
  runId: string,
  operationId: string,
  context: OperationContext,
) => Promise<NativeControlReceipt>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L83)

### getEffectMqRun

**Signature**

```ts
declare const getEffectMqRun: (
  state: EffectMqPostgresState,
  runId: string,
  context: OperationContext,
) => Promise<NativeRun>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L45)

### listEffectMqRuns

**Signature**

```ts
declare const listEffectMqRuns: (
  state: EffectMqPostgresState,
  query: NativeRunQuery,
  context: OperationContext,
) => Promise<NativeRunPage>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L55)

### readRecord

**Signature**

```ts
declare const readRecord: (
  state: EffectMqPostgresState,
  runId: string,
  signal: AbortSignal,
) => Promise<JobStore.JobRecord | undefined>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L144)

### retryEffectMqRun

**Signature**

```ts
declare const retryEffectMqRun: (
  state: EffectMqPostgresState,
  request: NativeRetryRequest,
  context: OperationContext,
) => Promise<NativeControlReceipt>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L98)

### submitEffectMq

**Signature**

```ts
declare const submitEffectMq: (
  state: EffectMqPostgresState,
  request: NativeSubmission,
  context: OperationContext,
) => Promise<NativeReceiptValue>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-operations.ts#L17)

## `postgres-query.ts`

### matches

**Signature**

```ts
declare const matches: (query: NativeRunQuery, run: NativeRun) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-query.ts#L34)

### metadataFilter

**Signature**

```ts
declare const metadataFilter: (query: NativeRunQuery) => Readonly<Record<string, unknown>>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-query.ts#L5)

### states

**Signature**

```ts
declare const states: (
  statuses: NativeRunQuery["status"],
) => readonly JobStore.JobState[] | undefined;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-query.ts#L17)

### terminal

**Signature**

```ts
declare const terminal: (status: RunSnapshot["status"]) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-query.ts#L70)

### terminalState

**Signature**

```ts
declare const terminalState: (state: JobStore.JobState) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-query.ts#L79)

## `postgres-schedules.ts`

### createEffectMqPostgresSchedules

**Signature**

```ts
declare const createEffectMqPostgresSchedules: (
  getState: () => EffectMqPostgresState,
  queue: string | undefined,
) => NativeScheduleOperations;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-schedules.ts#L8)

## `postgres-snapshots.ts`

### effectMqSnapshot

**Signature**

```ts
declare const effectMqSnapshot: (
  state: EffectMqPostgresState,
  record: JobStore.JobRecord,
  context: OperationContext,
) => Promise<NativeRun>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-snapshots.ts#L7)

### statusOf

**Signature**

```ts
declare const statusOf: (record: JobStore.JobRecord) => NativeRun["status"];
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-snapshots.ts#L84)

## `postgres-state-support.ts`

### attempts

**Signature**

```ts
declare const attempts: (policy: unknown) => number | undefined;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state-support.ts#L80)

### bindingFrom

**Signature**

```ts
declare const bindingFrom: (
  envelope: TaskExecutionEnvelope,
  signal: AbortSignal,
) => TaskExecutionBinding;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state-support.ts#L45)

### envelopeFrom

**Signature**

```ts
declare const envelopeFrom: (
  input: unknown,
  definition: EffectMqTaskDefinition,
  context: Worker.JobContext,
) => TaskExecutionEnvelope;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state-support.ts#L6)

## `postgres-state.ts`

### EffectMqPostgresState (interface)

**Signature**

```ts
export interface EffectMqPostgresState {
  readonly jobs: Map<string, EffectMqJobDefinition["job"]>;
  readonly definitions: Map<string, EffectMqTaskDefinition>;
  readonly run: <A>(effect: Effect.Effect<A, unknown, unknown>, signal?: AbortSignal) => Promise<A>;
  readonly ready: () => Promise<void>;
  readonly ensureJob: (name: string) => EffectMqJobDefinition["job"];
  readonly workerStarted: boolean;
  readonly close: () => Promise<void>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state.ts#L18)

### EffectMqPostgresStateOptions (interface)

**Signature**

```ts
export interface EffectMqPostgresStateOptions {
  readonly postgresUrl: string;
  readonly tablePrefix?: string;
  readonly queue?: string;
  readonly definitions?: readonly EffectMqTaskDefinition[];
  readonly executor?: TaskExecutor;
  readonly startWorker?: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state.ts#L9)

### createEffectMqPostgresState

**Signature**

```ts
declare const createEffectMqPostgresState: (
  options: EffectMqPostgresStateOptions,
) => EffectMqPostgresState;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/postgres-state.ts#L28)

## `schedules.ts`

### EffectMqScheduleBridge (interface)

**Signature**

```ts
export interface EffectMqScheduleBridge {
  readonly store: EffectMqScheduleStore;
  readonly run: <A>(effect: Effect.Effect<A, unknown, unknown>) => Promise<A>;
  readonly jobName: string;
  readonly queue?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/schedules.ts#L23)

### EffectMqScheduleStore (interface)

**Signature**

```ts
export interface EffectMqScheduleStore {
  readonly listSchedules: (options?: {
    readonly jobName?: string;
    readonly group?: string;
  }) => Effect.Effect<ReadonlyArray<EffectScheduleRecord>, unknown, unknown>;
  readonly upsertSchedule: (
    schedule: EffectScheduleRecord,
  ) => Effect.Effect<void, unknown, unknown>;
  readonly removeSchedule: (key: ScheduleKey) => Effect.Effect<boolean, unknown, unknown>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/schedules.ts#L12)

### createEffectMqScheduleOperations

Maps effect-mq JobSchedules' native Postgres records to the RELKIT schedule SPI.

**Signature**

```ts
declare const createEffectMqScheduleOperations: (
  options: EffectMqScheduleBridge,
) => NativeScheduleOperations;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/schedules.ts#L31)

## `support.ts`

### optionalText

**Signature**

```ts
declare const optionalText: (value: unknown) => string | undefined;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/support.ts#L1)

## `worker.ts`

### EffectMqTaskDefinition (interface)

**Signature**

```ts
export interface EffectMqTaskDefinition {
  readonly id: string;
  readonly jobId: string;
  readonly taskId: string;
  readonly version: string;
  readonly taskVersion?: string;
  readonly buildId: string;
  readonly policy?: unknown;
  readonly schedules?: readonly unknown[];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/worker.ts#L3)

### EffectMqWorkerHandle (interface)

**Signature**

```ts
export interface EffectMqWorkerHandle {
  readonly definitions: readonly EffectMqTaskDefinition[];
  readonly ready: () => Promise<void>;
  readonly close: () => Promise<void>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/worker.ts#L21)

### EffectMqWorkerRegistrationOptions (interface)

**Signature**

```ts
export interface EffectMqWorkerRegistrationOptions {
  readonly definitions: readonly EffectMqTaskDefinition[];
  readonly executor: TaskExecutor;
  readonly startWorker?: boolean;
  readonly register?: (definitions: readonly EffectMqTaskDefinition[]) => Promise<void> | void;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/worker.ts#L14)

### createEffectMqWorker

**Signature**

```ts
declare const createEffectMqWorker: (
  options: EffectMqWorkerRegistrationOptions,
) => EffectMqWorkerHandle;
```

[Source](https://github.com/rel-kit/relkit/blob/main/integrations/packages/effect-mq/src/runtime/worker.ts#L27)
