/ SONDA · PROTOCOLS

Seven brokers. Nothing in production moves.

Kafka, RabbitMQ, NATS, AMQP 1.0, Redis, MQTT and STOMP, each an item in the project with the same log, composer and presets. The rule underneath them all: looking is not taking. A read in Sonda never advances a consumer, never acks on your behalf, never moves a message a production system is waiting for.

KAFKA RABBITMQ NATS · JETSTREAM · KV AMQP 1.0 REDIS STREAMS MQTT 5 STOMP

Looking is not taking

KafkaReads assign partitions directly: no consumer group joined, no offset committed. A production consumer's position is never moved.
NATSStream reads go through ephemeral ordered consumers that never ack. No durable consumer moves.
RabbitMQHOLD mode: see a message, never take it; it goes back to the queue when you stop.
AMQP 1.0HOLD, accept, browse or reject — your choice per receive. Held messages are settled from the log, one by one.
RedisRead a stream from any point, or as a group consumer with ack left to you.
/ THE BROKERS

What each one does, in plain words.

Pure Go everywhere — no native client libraries, nothing to install beside Sonda. The Network page's CAs and client certificates apply to every one of them.

Kafka

A bootstrap list, TLS, SASL PLAIN and SCRAM-SHA-256 / 512. Topics with their partitions, leaders and log offsets. Read one partition or all, from the end, the start, an offset or a point in time. Produce with a key, headers and a chosen partition; the answer says partition@offset and offers to read again from there. The cluster is probed every 15 s so the pane is never wrong about being connected.

RabbitMQ

AMQP 0-9-1 with the channel in confirm mode. Consume with auto-ack, ack once seen, HOLD, or reject to drop or dead-letter; prefetch and exclusive. Peek or take one message. Publish with every property and header; the mandatory flag shows unroutable messages as returned. Reply on a message's reply-to. x-death dead-letter history decoded. With the management API: overview, queues, exchanges and bindings, refreshed every 5 s. Without it: declare, bind, purge and delete over AMQP itself.

NATS

A server or a cluster list; user and password, token, NKey seed or a .creds file. Subscribe with wildcards and queue groups. Publish, or request and wait for the first answer, timed. JetStream: publish with ack and dedupe, list streams and consumers, read from new, all, last, last-per-subject, a sequence or a time. Key/Value: buckets, keys, get, history, put with a revision, delete, purge, watch a bucket or a key pattern.

AMQP 1.0

For Azure Service Bus and Event Hubs, ActiveMQ Artemis and Classic, Qpid, Solace, IBM MQ, RabbitMQ 4. Paste an Azure connection string and it fills in. SASL anonymous, plain or external with a client certificate. Receive with a credit, a JMS selector, an Event Hubs partition, a Service Bus session — or the next free one. Request mode with a temporary reply address. Typed application properties, annotations, a scheduled enqueue time, the body as bytes or as a JMS text message.

Redis

Standalone or cluster, TLS, an ACL user, a database, a client name. Streams found on every master with their stats, consumer groups with pending entries; read with XREAD from any point or as a consumer with XREADGROUP; ack from the log; first and last hundred; add with ordered fields and a trim; create or destroy a group. Pub/Sub with patterns, and how many subscribers a publish reached.

MQTT and STOMP

MQTT 5 and 3.1.1 over tcp, tls, ws and wss; QoS 0, 1 and 2; wildcards; the retained flag explained; MQTT 5 properties; reply on a response topic. STOMP 1.0 to 1.2 for ActiveMQ, Artemis, the RabbitMQ STOMP plugin and Apollo, over TCP, TLS or WebSocket, with selectors, prefetch, durable subscriptions, heart-beats and a timed receipt.

/ AND THEN

A message is an event. An event can start work.

Every broker here can start a flow when a message matches a topic and a filter — and the flow's outcome settles the message.

Triggers

A flow listens on a topic with wildcards and a filter expression, runs N at once, and on failure rejects or requeues. A RabbitMQ reply-to is answered. A queue of 500, and a circuit breaker that switches the flow off at 30 runs in 10 seconds.

Flows

Apps

An app's watcher can listen on a broker topic; an app's button can publish to one. The same connections, the same permissions.

Apps

Themis

Ask why a broker pane is amber or red: Themis reads the live state and the reason, and says it.

Themis AI
/ LOCKFLARE SONDA

Seven brokers, in the free edition.

The messaging areas, listed →