STOMP (Simple Text Oriented Messaging Protocol) is a lightweight, text-based protocol for interoperable messaging between clients and message brokers. Its frame-based design makes it easy to implement across many languages and platforms.
STOMP
STOMP (Streaming/Simple Text Oriented Messaging Protocol) is a lightweight, text-based wire protocol for messaging between clients and message brokers. It was designed to be the messaging equivalent of HTTP — simple enough that you can open a socket, send a human-readable frame, and be talking to a broker without a heavyweight client library. That deliberate simplicity is the whole point: STOMP trades the rich feature set of heavier protocols for something you can implement in an afternoon in almost any language.
- Frame-based and human-readable - Messages are plain-text frames (
CONNECT,SEND,SUBSCRIBE,MESSAGE) with headers and a body, much like HTTP. - Broker-agnostic - Works against ActiveMQ, RabbitMQ, and other brokers, so clients are not locked to one vendor’s native protocol.
- Transport-flexible - Runs over TCP or, commonly, over WebSockets, which makes it a natural fit for browser-based messaging.
- Minimal by design - It intentionally omits the complexity of protocols like AMQP, favoring approachability over completeness.
In practice STOMP shows up wherever teams want simple pub/sub without adopting a full broker-native client — most visibly in browser and mobile apps that speak STOMP over WebSockets to push real-time updates. It sits alongside heavier messaging standards like AMQP, MQTT, and the Kafka protocol as the low-friction option, and its text-based frames make it easy to inspect, debug, and reason about — useful properties when you are governing an event-driven surface or handing one to an automated client.