Skip to content

feat: cargo workspace and protobuf api definitions (story 1.1)#1

Merged
vieiralucas merged 2 commits intomainfrom
feat/1-1-cargo-workspace-protobuf-definitions
Feb 11, 2026
Merged

feat: cargo workspace and protobuf api definitions (story 1.1)#1
vieiralucas merged 2 commits intomainfrom
feat/1-1-cargo-workspace-protobuf-definitions

Conversation

@vieiralucas
Copy link
Copy Markdown
Member

@vieiralucas vieiralucas commented Feb 11, 2026

Summary

  • Establish four-crate Cargo workspace: fila-proto, fila-core, fila-server, fila-cli
  • Define complete protobuf API surface across three .proto files:
    • messages.proto — Message envelope with metadata and timestamps
    • service.protoFilaService with Enqueue, Lease (server-streaming), Ack, Nack RPCs
    • admin.protoFilaAdmin with CreateQueue, DeleteQueue, SetConfig, GetConfig, GetStats, Redrive RPCs
  • Set up fila-proto crate with tonic-prost-build 0.14 codegen pipeline and rerun-if-changed directives
  • Add AGPLv3 LICENSE
  • All four crates compile clean with cargo build, cargo clippy -D warnings, and cargo fmt --check

Acceptance Criteria (Story 1.1)

  • Cargo workspace root with four member crates
  • messages.proto defines Message envelope
  • service.proto defines FilaService with 4 RPCs
  • admin.proto defines FilaAdmin with 6 RPCs
  • fila-proto build.rs generates Rust types and gRPC code
  • fila-proto/src/lib.rs re-exports all generated types
  • All four crates compile successfully
  • Workspace-level dependency management
  • AGPLv3 LICENSE present

Test plan

  • cargo build — all crates compile
  • cargo clippy -- -D warnings — zero warnings
  • cargo fmt --check — properly formatted
  • Reviewer: verify proto definitions match architecture doc

🤖 Generated with Claude Code


Summary by cubic

Established a four-crate Cargo workspace and the full gRPC/Protobuf API for Fila. Minor cleanup since last summary: removed redundant comments in workspace dependencies. Addresses Story 1.1 with tonic-prost-build 0.14; all crates compile clean.

  • New Features

    • Workspace with fila-proto, fila-core, fila-server, fila-cli.
    • Protobuf API:
      • messages.proto: envelope, metadata, timestamps.
      • service.proto: Enqueue, Lease (server-streaming), Ack, Nack.
      • admin.proto: Create/Delete Queue, Set/Get Config, Get Stats, Redrive.
    • fila-proto generates Rust types/services and re-exports them.
    • Added AGPLv3 LICENSE.
  • Migration

    • protoc must be installed and in PATH (required by tonic 0.14 build pipeline).

Written for commit 49ccf67. Summary will update on new commits.

establish the project foundation with a four-crate cargo workspace
(fila-proto, fila-core, fila-server, fila-cli) and define the complete
protobuf api surface: messages.proto (message envelope), service.proto
(hot-path rpcs), and admin.proto (operator rpcs). fila-proto generates
rust types and grpc service code via tonic-prost-build 0.14.
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

No issues found across 17 files

Comment thread Cargo.toml Outdated
@vieiralucas vieiralucas merged commit f092e56 into main Feb 11, 2026
1 check passed
@vieiralucas vieiralucas deleted the feat/1-1-cargo-workspace-protobuf-definitions branch February 11, 2026 15:51
vieiralucas added a commit that referenced this pull request Feb 17, 2026
- Rename crate from fila-client to fila-sdk across workspace
- Add assertion after server startup poll to fail fast when server
  is unreachable (Cubic finding #1)
- Add comment explaining why None lease messages are filtered as
  expected keepalive frames (Cubic finding #2)
vieiralucas added a commit that referenced this pull request Feb 19, 2026
- Rename crate from fila-client to fila-sdk across workspace
- Add assertion after server startup poll to fail fast when server
  is unreachable (Cubic finding #1)
- Add comment explaining why None lease messages are filtered as
  expected keepalive frames (Cubic finding #2)
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
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.

1 participant