Skip to content

[1/4 messagequeue] RFC: per-tenant sharding for the MySQL message queue - #693

Open
behinddwalls wants to merge 3 commits into
mainfrom
preetam/mq-tenant-rfc
Open

[1/4 messagequeue] RFC: per-tenant sharding for the MySQL message queue#693
behinddwalls wants to merge 3 commits into
mainfrom
preetam/mq-tenant-rfc

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Why?

Vitess is the product, not the contract. The RFC should talk about sharded MySQL and a tenant shard key so the design does not read as Vitess-specific.

What?

  • Drop the RFC metadata table.
  • Rename the RFC to per-tenant sharding for the MySQL message queue and replace vindex/Vitess wording with shard key and sharded MySQL.

Test Plan

Issues

Stack

  1. @ [1/4 messagequeue] RFC: per-tenant sharding for the MySQL message queue #693
  2. [2/4 messagequeue] Shard MySQL queues by tenant identity #694
  3. [3/4 messagequeue] Wire MQ_TENANTS through services and tests #695
  4. [4/4 messagequeue] Add Vitess vschema and two-shard vtcombo suite #696

## Summary

### Why?

Vitess needs a stable vindex that is not the Kafka-style partition key. SubmitQueue already uses partition_key for ordering, so hashing it would scatter one queue across shards and mix tenants.

### What?

- Add the per-tenant MQ sharding RFC: tenant column as the vindex, queueName mapped at wiring, partition_key remaining the in-tenant ordering unit.
- Link the RFC from the index and note the consumer-gate interaction.

## Test Plan

Docs only. Review the RFC against the follow-up implementation PRs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@behinddwalls behinddwalls changed the title [1/4 messagequeue] RFC: per-tenant Vitess sharding [1/4 messagequeue] RFC: per-tenant MySQL sharding Sep 8, 2026
## Summary

### Why?

Vitess is the product, not the contract. The RFC should talk about sharded MySQL and a tenant shard key so the design does not read as Vitess-specific.

### What?

- Drop the RFC metadata table.
- Rename the RFC to per-tenant sharding for the MySQL message queue and replace vindex/Vitess wording with shard key and sharded MySQL.

Co-authored-by: Cursor <cursoragent@cursor.com>
@behinddwalls behinddwalls changed the title [1/4 messagequeue] RFC: per-tenant MySQL sharding [1/4 messagequeue] RFC: per-tenant sharding for the MySQL message queue Sep 8, 2026
## Summary

### Why?

VARCHAR(255) is not a single byte budget. Reviewers need to know why operational IDs are ascii_bin and partition keys are utf8mb4_bin, including the 255-byte vs 255-character distinction and InnoDB's 3072-byte key cap.

### What?

- Explain CHARACTER SET ascii COLLATE ascii_bin vs utf8mb4/utf8mb4_bin, NOT NULL, and the per-column limits in the tenant-sharding RFC.

Co-authored-by: Cursor <cursoragent@cursor.com>
@behinddwalls
behinddwalls marked this pull request as ready for review September 8, 2026 06:11
@behinddwalls
behinddwalls requested review from a team and sbalabanov as code owners September 8, 2026 06:11
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.

2 participants