NextJS Integration Example
Easiest way to use LambdaQueue in your NextJS application is to use our serverless
SDK. It's with any hosting provider, but has some options auto-detection for Vercel and Netlify.
Start by installing the package:
bash
npm add @dayone-labs/lambda-queue-serverless
INFO
We take care to make our client libraries as slim as possible. Don't be afraid of dependency hell when installing our SDKs. We have exactly 0 dependencies.
Below you can find a minimal code example on how to push and handle queue items using NextJS app router.
Code example
Here's a small sample application that pushes arbitrary data to queue using NextJS SDK.
ts
import { queue } from '@dayone-labs/lambda-queue-serverless'
type Payload = {
name: string
age: number
}
export const welcomeQueue = queue(
'/lq/queue', //Pass route that it will be served at❗
async (job: Payload) => {
console.log(`Hi ${job.name}, you are ${job.age} years old!`)
}
)
ts
import { welcomeQueue } from './welcome-queue'
//Queue is a route handler, just expose it as POST
export const POST = welcomeQueue
//Remember to expose HEAD so we can validate endpoint
export const HEAD = welcomeQueue
tsx
'use client'
import { pushToQueue } from './actions'
export const Page = () => {
return (
<div>
<button onClick={() => pushToQueue()}>Press to Push!</button>
</div>
)
}
export default Page
ts
'use server'
import { welcomeQueue } from './welcome-queue'
export const pushToQueue = async () => {
await welcomeQueue.push({ name: 'John Doe', age: 30 })
}