queueStrategy

Function: queueStrategy()

ts
function queueStrategy(options?): QueueStrategy;
function queueStrategy(options?): QueueStrategy;

Defined in: packages/db/src/strategies/queueStrategy.ts:46

Creates a queue strategy that processes all mutations in order with proper serialization.

Unlike other strategies that may drop executions, queue ensures every mutation is processed sequentially. Each transaction commit completes before the next one starts. Useful when data consistency is critical and every operation must complete in order.

Parameters

options?

QueueStrategyOptions

Configuration for queue behavior (FIFO/LIFO, timing, size limits)

Returns

QueueStrategy

A queue strategy instance

Examples

ts
// FIFO queue - process in order received
const mutate = usePacedMutations({
  mutationFn: async ({ transaction }) => {
    await api.save(transaction.mutations)
  },
  strategy: queueStrategy({
    wait: 200,
    addItemsTo: 'back',
    getItemsFrom: 'front'
  })
})
// FIFO queue - process in order received
const mutate = usePacedMutations({
  mutationFn: async ({ transaction }) => {
    await api.save(transaction.mutations)
  },
  strategy: queueStrategy({
    wait: 200,
    addItemsTo: 'back',
    getItemsFrom: 'front'
  })
})
ts
// LIFO queue - process most recent first
const mutate = usePacedMutations({
  mutationFn: async ({ transaction }) => {
    await api.save(transaction.mutations)
  },
  strategy: queueStrategy({
    wait: 200,
    addItemsTo: 'back',
    getItemsFrom: 'back'
  })
})
// LIFO queue - process most recent first
const mutate = usePacedMutations({
  mutationFn: async ({ transaction }) => {
    await api.save(transaction.mutations)
  },
  strategy: queueStrategy({
    wait: 200,
    addItemsTo: 'back',
    getItemsFrom: 'back'
  })
})
Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.