Skip to content

Conversation

@vasigorc
Copy link

@vasigorc vasigorc commented Nov 26, 2025

Description

Adds a template demonstrating AWS ElastiCache integration for message queue functionality using Redis Streams.

What this template shows

  • Message production to Redis Streams
  • Consumer group message consumption with XREADGROUP and XAUTOCLAIM
  • Message acknowledgement and pending list management
  • Contact form to message processor workflow

Type of Change

  • New Example
  • Example updates (Bug fixes, new features, etc.)
  • Other (changes to the codebase, but not to examples)

Simple demo flow looks like this:

Screen.Recording.2025-11-25.at.4.13.35.PM.mov

New Example Checklist

  • 🛫 npm run new-example was used to create the example
  • 📚 The template wasn't used but I carefuly read the Adding a new example steps and implemented them in the example
  • 📱 Is it responsive? Are mobile and tablets considered?

@vercel
Copy link
Contributor

vercel bot commented Nov 26, 2025

@vasigorc is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

@acarbonetto acarbonetto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting idea, to you message processing instead of a basic API.

return {
valid: true,
data: {
name: data.name.trim(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why trim?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, like on two lines below, the intent is to trim trailing white spaces/tabs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. But maybe the extra whitespace is desired.
And if not, garbage in, garbage out.

// Clear form
setName('')
setEmail('')
setMessage('')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'd suggest not clearing the form? But I dont have strong feelings.

@socket-security
Copy link

socket-security bot commented Dec 23, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​eslint-config-next@​13.5.11991006598100
Addednpm/​@​types/​node@​20.19.251001008195100
Addednpm/​next@​16.1.183100919870
Addednpm/​tailwindcss@​3.4.18981008798100
Addednpm/​@​valkey/​valkey-glide@​2.1.29910010098100

View full report

@vasigorc vasigorc requested review from tknickman and removed request for a team January 8, 2026 21:29
@vasigorc vasigorc force-pushed the message-queue-elasticache-clean branch from a6d8642 to c2490d7 Compare January 8, 2026 21:43
vasigorc and others added 8 commits January 8, 2026 16:54
Demonstrates Streams with consumer groups for message queue
functionality in Vercel Functions. Includes:

- Contact form message producer (POST /api/messages)
- Consumer group message processor with XREADGROUP and XAUTOCLAIM (GET /api/messages)
- Message acknowledgement endpoint (DELETE /api/messages)
- UI components for form submission and message processing
- valkey-glide client integration with proper error handling
Co-authored-by: Andrew Carbonetto <andrew.carbonetto@improving.com>
`serverComponentsExternalPackages` moved out of `experimental` in
Next.js 15+
getMetadata is not compatible with client components
@vasigorc vasigorc force-pushed the message-queue-elasticache-clean branch from c2490d7 to b6c014a Compare January 8, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants