chore(services): remove BullMQ vaporware, reframe cluster packages as Redis-free-first#1840
Merged
Merged
Conversation
… Redis-free-first
The queue/cluster packages presented Redis/BullMQ as the production path,
which contradicts the platform's actual direction (DB-first, single-node
affinity, Redis-free Cloud/EE). Clean up the misleading surface:
service-queue:
- Delete the BullMQQueueAdapter skeleton (every method threw "not yet
implemented (M10.43)"); remove the 'bullmq' adapter option, the dead
throw branch, the reserved redisUrl field, and the index exports. No
external consumers (grep-verified). DbQueueAdapter (sys_job_queue,
lease-based claim) is the durable, multi-node, broker-free path.
- Rewrite the README: it documented a fictional add/process/REST API and
framed BullMQ/Redis as "production". Replace with the real
publish/subscribe + DLQ surface and the db/memory/auto adapters.
service-cluster:
- Downgrade the header doc: only the redis remote driver exists
(postgres/nats are not built). Call out the memory-driver split-brain
footgun for multi-replica deployments.
service-cluster-redis:
- Add a README positioning it as a community-optional reference driver
that proves the registerClusterDriver() SPI — explicitly NOT on the
Redis-free Cloud/EE deployment path. Fix the wiring example to the real
defineCluster({ driver: 'redis' }) / ClusterServicePlugin({ config }) API.
Verified: turbo build green (CJS+ESM+DTS) for all three packages;
service-queue 20/20 tests pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The queue/cluster packages presented Redis/BullMQ as the production path, which contradicts the platform's actual direction (DB-first, single-node affinity, Redis-free Cloud/EE). This cleans up the misleading surface — no behavior change to working code paths.
service-queue
BullMQQueueAdapterskeleton (every method threw"not yet implemented (M10.43)"); remove the'bullmq'adapter option, the dead throw branch, the reservedredisUrlfield, and the index exports. No external consumers (grep-verified).DbQueueAdapter(sys_job_queue, lease-based claim) is the durable, multi-node, broker-free path.add/process/REST API and framed BullMQ/Redis as "production". Replaced with the realpublish/subscribe+ DLQ surface and thedb/memory/autoadapters.service-cluster
redisremote driver exists (postgres/nats are not built). Call out the memory-driver split-brain footgun for multi-replica deployments.service-cluster-redis
registerClusterDriver()SPI — explicitly not on the Redis-free Cloud/EE deployment path. Fix the wiring example to the realdefineCluster({ driver: 'redis' })/ClusterServicePlugin({ config })API.Why
Open-core boundary: cluster primitives are open mechanisms (one-app-across-N-processes), not multi-tenancy. The platform's multi-node story is Redis-free (DB-backed queue + per-env affinity routing). The packages' docs/stubs implied a Redis-first production path that doesn't exist and isn't the direction.
Verification
turbo run buildgreen (CJS + ESM + DTS) for all three packages.Follow-up (not in this PR)
🤖 Generated with Claude Code