Controlled-Beta Tooling
Controlled BetaThe CLI and SDK surfaces below are source-backed from the current broker executable, developer CLI, and native Rust API crate.
Reference
Source-backed reference for Message Broker lifecycle flags, local and remote CLI commands, diagnostics, release artifacts, and first-party Rust SDK entry points.
Current availability
Private Beta. Public beta is scheduled for .
The CLI and SDK surfaces below are source-backed from the current broker executable, developer CLI, and native Rust API crate.
Product, operations, support, and docs QA review still need to accept the wording before it supports external commitments.
| ID | Type | Name | Method | Path or symbol | Maturity | Evidence |
|---|---|---|---|---|---|---|
smb-cli-lifecycle | cli | Broker lifecycle Version output, pre-start validation, and local broker startup flags. | mq --version, mq --validate-config, mq --node-id ... | startup flags | Controlled Beta | SMB-EVID-009, runtime_config.rs, main.rs |
smb-cli-local-data | cli | Local data CLI Filesystem-backed developer commands for local stream records and cursors. | mq cli --data-dir <PATH> <command> | stream, publish, tail, replay, cursor, group, queue views | Controlled Beta | SMB-EVID-009, dev_cli/data.rs |
smb-cli-diagnostics | cli | Diagnostics bundles Payload-free local or remote support bundle collection with validation. | mq diagnostics collect | diagnostics collect --bundle-id <ID> --output <PATH> | Controlled Beta | SMB-EVID-009, dev_cli/diagnostics.rs |
smb-cli-remote-management | cli | Remote HTTP CLI Read-only remote health, introspection, and diagnostics commands. | mq cli --target http://host:port <command> | health and management GETs | Controlled Beta | SMB-EVID-009, dev_cli/remote.rs |
smb-cli-release-artifacts | cli | Release artifacts Local Markdown generators for controlled-beta evidence and review packets. | mq cli release <command> | packet, burn-down, signoff, onboarding, reset commands | Controlled Beta | SMB-EVID-009, dev_cli/release.rs |
smb-sdk-client-config | sdk | Client setup Producer identity, defaults, trace hooks, in-process clients, and HTTP transport setup. | ClientConfig, NativeClient::new, HttpNativeClient::connect | stornamics_message_broker_native::* | Controlled Beta | SMB-EVID-009, sdk.rs |
smb-sdk-publish-replay | sdk | Publish and replay Typed publish, retry, bounded replay fetch, subscription replay, and cursor commit helpers. | create, publish, fetch, replay, commit cursor | NativeClient and HttpNativeClient stream methods | Controlled Beta | SMB-EVID-009, publish_replay.rs |
smb-sdk-queue-workflows | sdk | Shared queue Queue worker helpers for delivery mutation, retry, dead-letter, and inspection workflows. | claim, ack, nack, renew, retry, dead-letter, inspect | queue SDK helpers | Controlled Beta | SMB-EVID-009, http_queue_worker.rs |
| Group | Example | Output or side effect | Boundary |
|---|---|---|---|
| Version | mq --version | Prints release metadata from the current package. | No broker node starts. |
| Validate config | mq --validate-config --node-id local-1 --http-bind 127.0.0.1:9101 --data-dir /tmp/stornamics-mq --flush-policy append-only | Runs the same startup parser and validation report without binding the listener. | Invalid reports exit 2. |
| Start node | mq --node-id local-1 --http-bind 127.0.0.1:9101 --data-dir /tmp/stornamics-mq --metrics-exposure http | Creates the data directory, opens storage, validates runtime sources, and serves HTTP routes. | Requires reviewed flags for protected auth, quotas, metrics export, and replication binding. |
| Group | Example | Output or side effect | Boundary |
|---|---|---|---|
| Stream catalog | mq cli --data-dir /tmp/stornamics-cli stream create telemetry | Creates or reuses the local stream catalog entry. | State is local to the selected data directory. |
| Publish | mq cli --data-dir /tmp/stornamics-cli publish telemetry --message-id msg-1 --payload hello --key machine-17 | Appends one local SegmentStorage record. | Payload input is text for the developer CLI. |
| Replay | mq cli --data-dir /tmp/stornamics-cli replay telemetry --from-offset 0 --limit 10 | Reads bounded records from local storage. | Use positive limits and unsigned offsets. |
| Cursor | mq cli --data-dir /tmp/stornamics-cli cursor commit telemetry analytics processed 1 | Persists a named cursor and reports previous offset when present. | The stream must exist in the local catalog first. |
| Queue views | mq cli --data-dir /tmp/stornamics-cli lease list telemetry analytics --include-completed | Returns an explicit empty local view with runtime_state=not_tracked. | Runtime queue state is not persisted through the local CLI path yet. |
Remote mode accepts --target http://host:port and optional --api-key <TOKEN>. The CLI sends Authorization: Bearer <TOKEN> for remote GETs and redacts that value in diagnostics bundles.
| Group | Example | Output or side effect | Boundary |
|---|---|---|---|
| Health | mq cli --target http://127.0.0.1:9101 health | Calls GET /health and returns the response body. | HTTPS targets are rejected by the current CLI transport. |
| Consumer group | mq cli --target http://127.0.0.1:9101 consumer-group describe telemetry analytics | Calls /v1/streams/{stream}/consumer-groups/{consumer_group}. | Broker error bodies are returned rather than hidden. |
| Cursor list | mq cli --target http://127.0.0.1:9101 cursor list telemetry analytics | Calls /v1/streams/{stream}/consumer-groups/{consumer_group}/cursors. | Path tokens are URL-encoded. |
| Lease list | mq cli --target http://127.0.0.1:9101 lease list telemetry analytics --include-completed | Calls /leases?include_completed=true. | Remote data writes remain unsupported. |
| Diagnostics | mq cli --target http://127.0.0.1:9101 --api-key dev-api-key diagnostics collect --bundle-id diag-http-001 --output /tmp/diag-http-001.json | Collects health, metrics, streams, replication status, and audit route bodies. | The API key is redacted in the diagnostics bundle. |
Diagnostics collection writes a validated stornamics.diagnostics_bundle.v1 JSON document with configuration, topology, metrics, stream metadata, cursor state, recent errors, version information, command outputs, and redactions.
Remote collection calls GET /health, GET /metrics, GET /v1/streams, GET /v1/replication/status, and GET /v1/audit/events?start_offset=0&max_records=100. Current collectors reject --include-payloads.
| Group | Example | Output or side effect | Boundary |
|---|---|---|---|
| packet-template | mq cli release packet-template --output-path /tmp/eps-040.md | Generates the EPS-040 release-candidate packet template. | Local artifact generation only. |
| evidence-burn-down | mq cli --output json release evidence-burn-down --output-path /tmp/pm-009.md | Renders PM-009 action and readiness counts from packet inputs. | Use JSON output for automation status. |
| controlled-beta-onboarding | mq cli release controlled-beta-onboarding --audience pilot-alpha --owner Ava | Generates the PM-010 onboarding package. | Replace placeholders before treating output as pilot-ready. |
| post-pilot-roadmap-reset | mq cli release post-pilot-roadmap-reset --pilot-name pilot-alpha --decision-date 2026-08-07 | Generates the PM-012 post-pilot reset package. | Requires pilot go/no-go inputs before review. |
| Entry point | Applies to | Inputs | Response | Evidence |
|---|---|---|---|---|
ClientConfig::new | Native and HTTP clients | Producer id, optional epoch, default durability, default headers, and trace context. | Defaults used for publish idempotency and metadata. | sdk.rs |
NativeClient::new | In-process NativeBrokerApi implementations | Broker implementation plus ClientConfig. | Typed client or SdkError::InvalidConfig. | sdk.rs |
HttpNativeClient::connect | Running broker HTTP routes | http://host[:port] base URL plus ClientConfig. | Standard-library TCP HTTP client. | sdk.rs |
publish / publish_with_retry | Native and HTTP clients | PublishMessage plus optional PublishRetryPolicy. | PublishResponse; retry reuses idempotency fields. | sdk.rs, idempotent_publish_retry.rs |
subscribe_replay / fetch / fetch_from_offset | Replay workflows | Stream, consumer group, start position, offset, and max records. | Typed replay page without queue side effects. | sdk.rs, publish_replay.rs |
claim_queue / subscribe_queue | Shared queue workers | Stream, group, offset, max messages, and lease timeout. | FetchResponse with delivery metadata. | sdk.rs, http_queue_worker.rs |
ack / nack / renew_lease / retry_delivery / dead_letter | Queue delivery mutation | Claim or subscription, delivery, reason, delay, or dead-letter stream. | Typed queue mutation response. | sdk.rs, native-sdk.md |
inspect_leases / inspect_delayed_messages / inspect_replay_consumers / describe_consumer_group | Operator and repair tooling | Stream, consumer group filter, and include-completed flag. | Typed inspection response. | sdk.rs, native-sdk.md |
use stornamics_message_broker_native::{
ClientConfig, DurabilityMode, InMemoryBroker, NativeClient, PublishMessage,
RetentionPolicy, StartPosition, Timestamp,
};
let broker = InMemoryBroker::with_start_time(Timestamp::from_unix_millis(10_000));
let mut client = NativeClient::new(broker, ClientConfig::new("analytics-producer"))?;
client.create_stream("telemetry", DurabilityMode::LocalDisk, RetentionPolicy::default())?;
client.publish(
PublishMessage::new(
"telemetry",
Timestamp::from_unix_millis(1_700_000_000_000),
b"reading-1".to_vec(),
)
.with_message_id("reading-1"),
)?;
let replay = client.subscribe_replay("telemetry", "analytics", StartPosition::Earliest)?;
let fetched = client.fetch(&replay, 100)?;
client.commit_cursor("telemetry", "analytics", "processed", fetched.next_offset)?;use stornamics_message_broker_native::{ClientConfig, HttpNativeClient};
let mut client = HttpNativeClient::connect(
"http://127.0.0.1:9101",
ClientConfig::new("worker-a"),
)?;
let claim = client.claim_queue("jobs", "workers", 0, 1, Some(30_000))?;
let delivery = &claim.messages[0];
client.retry_delivery(&claim, delivery, "dependency unavailable", 250)?;HttpNativeClient currently builds unauthenticated http:// requests. Use it against local insecure endpoints or provide a custom SdkHttpTransport when the caller must inject credentials, TLS, tracing, or test fixtures.
| Surface | Error or limit | Meaning | Recovery |
|---|---|---|---|
| Lifecycle CLI | Exit 2 | Startup args or validation report failed. | Fix flags, secret-source configuration, metrics settings, replication binding, or quota values. |
| Local CLI | Usage error | Required arguments or flags are missing or invalid. | Use mq cli --help, positive limits, and unsigned offsets. |
| Remote CLI | Unsupported command | Remote data writes and release artifacts are not wired to remote routes. | Use local CLI mode, HTTP routes, or the SDK route helper. |
| Diagnostics | --include-payloads unsupported | Current collectors never read message payloads. | Run without the flag until an explicit offline collector exists. |
| SDK | SdkError::InvalidConfig | Blank producer id or unsupported HTTP base URL. | Provide a non-empty producer id and http://host[:port]. |
| SDK | SdkError::HttpBroker | Broker returned a non-2xx JSON error. | Inspect status, code, message, action, and retryability. |
| SDK queue | Stale delivery state | Delivery id or lease is missing, expired, or terminal. | Claim current work and retry with fresh delivery metadata. |
Internal review records track this CLI and SDK reference and the evidence required to change release, diagnostic, or SDK status.
Available: DOCS-031
Read HTTP referenceMap the CLI and SDK helpers back to implemented health, stream, record, cursor, queue, replication, audit, metrics, and storage routes.
Available now
Run stream and queue quickstartExercise local stream create, publish, replay, queue claim, ack, and inspection behavior.
Available now
Review Message Broker evidenceCheck evidence records before strengthening CLI, SDK, support, or pilot-readiness wording.
Available: DOCS-040
Compare route and auth scopeSeparate controlled-beta routes from auth, replication, queue, CLI, SDK, and Kafka protocol boundaries.