feat: grpc server with queue management rpcs#5
Merged
vieiralucas merged 5 commits intomainfrom Feb 11, 2026
Merged
Conversation
There was a problem hiding this comment.
2 issues found across 8 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="crates/fila-server/src/main.rs">
<violation number="1" location="crates/fila-server/src/main.rs:72">
P2: shutdown_signal only listens for SIGINT (ctrl_c). SIGTERM won’t trigger graceful shutdown, so systemd/docker stops can hang. Add SIGTERM handling alongside ctrl_c.</violation>
</file>
<file name="crates/fila-core/src/broker/scheduler.rs">
<violation number="1" location="crates/fila-core/src/broker/scheduler.rs:142">
P2: Validate that `config.name` matches the requested queue name (or overwrite it) before persisting, otherwise mismatched configs can be stored under the wrong queue ID.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
b33c66e to
792b36c
Compare
91da999 to
96eea1e
Compare
5ffa754 to
fbbd6b0
Compare
96eea1e to
a20e922
Compare
fbbd6b0 to
e1f40eb
Compare
a8aefe0 to
957bfed
Compare
e1f40eb to
8060632
Compare
957bfed to
d5a678a
Compare
8060632 to
acc9695
Compare
implement fila-server binary with tonic grpc server serving the filaadmin service. createqueue and deletequeue rpcs send commands to the scheduler thread via crossbeam channel with oneshot reply. includes config file loading (fila.toml), tracing init, graceful shutdown on sigint, and error mapping from filaerror to grpc status codes. remaining admin rpcs stubbed as unimplemented.
d5a678a to
b40c6e8
Compare
vieiralucas
commented
Feb 11, 2026
d3d5314 to
fc6f597
Compare
fc6f597 to
67eec3c
Compare
This was referenced Feb 12, 2026
4 tasks
vieiralucas
added a commit
that referenced
this pull request
Mar 18, 2026
- apply_to_broker_storage now returns Result and propagates StorageError instead of silently swallowing storage failures (cubic #1) - add DeleteLeaseExpiry mutation in ack/nack replication paths to clean up orphaned lease expiry entries (cubic #3) - fix no-op leased_msg_keys.retain in recovery — now properly clears entries for the recovering queue before rebuild (cubic #4) - warn when create_group is called without broker_storage set (cubic #5) - check send_command result in watch_leader_changes — only update leading state on success so next poll retries on failure (cubic #6, #7) - trigger RecoverQueue on first-sight leader state to catch messages replicated between startup and first poll (cubic #8) - replace catch-all _ => {} with explicit variant listing in apply_to_broker_storage for compiler-enforced exhaustiveness
vieiralucas
added a commit
that referenced
this pull request
Mar 18, 2026
- apply_to_broker_storage now returns Result and propagates StorageError instead of silently swallowing storage failures (cubic #1) - add DeleteLeaseExpiry mutation in ack/nack replication paths to clean up orphaned lease expiry entries (cubic #3) - fix no-op leased_msg_keys.retain in recovery — now properly clears entries for the recovering queue before rebuild (cubic #4) - warn when create_group is called without broker_storage set (cubic #5) - check send_command result in watch_leader_changes — only update leading state on success so next poll retries on failure (cubic #6, #7) - trigger RecoverQueue on first-sight leader state to catch messages replicated between startup and first poll (cubic #8) - replace catch-all _ => {} with explicit variant listing in apply_to_broker_storage for compiler-enforced exhaustiveness
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.
Summary
fila-serverbinary with tonic gRPC server servingFilaAdminserviceCreateQueueandDeleteQueuescheduler command variants with full queue lifecycle managementCreateQueueRPC persists to storage, returnsALREADY_EXISTSon duplicateDeleteQueueRPC removes from storage, returnsNOT_FOUNDif missingFilaErrorvariants to appropriate gRPC status codes (NOT_FOUND, ALREADY_EXISTS, INVALID_ARGUMENT, INTERNAL)fila.tomlor/etc/fila/fila.tomlwith defaultsTest plan
cargo nextest runcargo clippy -- -D warningspassescargo fmt --checkpassesSummary by cubic
Adds a tonic gRPC server (fila-server) with CreateQueue and DeleteQueue RPCs for queue management. Validates queue config (including visibility_timeout_ms), routes commands through the scheduler, persists to storage, and shuts down cleanly on Ctrl+C or SIGTERM.
New Features
Bug Fixes
Written for commit 67eec3c. Summary will update on new commits.