Private Beta Tooling
Private 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.
Use this reference for the private beta CLI and SDK surfaces. Treat external commitments as Confirm First unless the related limits and compatibility pages state the supported scope.
| ID | Type | Name | Method | Path or symbol | Maturity | Source scope |
|---|---|---|---|---|---|---|
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 | Private Beta | documented source scope, 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 | Private Beta | documented source scope, 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> | Private Beta | documented source scope, 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 | Private Beta | documented source scope, dev_cli/remote.rs |
smb-cli-release-artifacts | cli | Release artifacts Local Markdown generators for private beta evidence and review packets. | mq cli release <command> | packet, burn-down, signoff, onboarding, reset commands | Private Beta | documented source scope, 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::* | Private Beta | documented source scope, 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 | Private Beta | documented source scope, 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 | Private Beta | documented source scope, 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 launch decision inputs before review. |
| Entry point | Applies to | Inputs | Response | Source scope |
|---|---|---|---|---|
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 public documentation boundaries track this CLI and SDK reference and the review note required to change release, diagnostic, or SDK status.
Available
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 limitsCheck public documentation boundaries before strengthening CLI, SDK, support, or pilot-readiness wording.
Available
Compare route and auth scopeSeparate private beta routes from auth, replication, queue, CLI, SDK, and Kafka protocol boundaries.