ByteVeda / ByteVeda/flexiq

proto: a flexiq.admin.v1 service

Open
#836 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/server area/wire enhancement P1
Dominant language
Rust
Stars
20
Forks
2
Avg merge
5h 10m
Merged PRs (30d)
127

Description

flexiq.v1.ProducerService covers submit, read, cancel and count. flexiq.executor.v1 covers
claiming and reporting work. Between them there is no way, over the network, to:

  • pause or resume a queue
  • list the dead-letter queue, inspect an entry, or replay one
  • list workers, drain one, or read heartbeats
  • create, update, delete or trigger a periodic task
  • read or change a rate limit or a concurrency cap
  • read queue and predicate stats beyond the counts the producer door exposes

The dashboard does all of these, so the logic exists — it is just not on the wire. Today the
only automation path is to drive the dashboard's HTTP API, which is not a contract, or to embed
an SDK, which needs one of three languages and a database connection.

Add flexiq.admin.v1 as a third service on the same listener, with its own scope (see #839).

Design constraints, from #710:

  • Not a Storage proxy. ~110 trait methods with a three-backend parity obligation each.
    Expose operations an operator performs, named as operations. The settings KV in particular
    must not become a generic remote key-value door.
  • Every RPC namespace-scoped, like everything else on the door.
  • Destructive operations are explicit. Replaying a dead letter and draining a worker change
    the running system; they need their own scope, not produce.

Do the proto design as its own step and get it reviewed before the tonic impl — a wire mistake
here is permanent under buf breaking with WIRE_JSON.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing flexiq.v1.ProducerService and flexiq.executor.v1 contracts, along with the design constraints in #710 and scope in #839. Define the namespace-scoped flexiq.admin.v1 operations, get the proto design reviewed before the tonic implementation, and verify it with buf breaking and WIRE_JSON.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.