LavinMQ and Streaming

Data flows

From event-driven architectures to real-time analytics, modern teams need to store and replay data, not just move it. LavinMQ handles these continuous streams without the heavy infrastructure usually required for high-throughput logging.

By combining an append-only storage model with a lightweight core, LavinMQ enables high-performance streaming and message replaying with minimal resource overhead.

It’s a simple, efficient foundation for data that needs to move - and stay.

Guide

Building a live Bluesky viewer with streams and WebSockets

LavinMQ keeps your app focused by handling background tasks asynchronously, queuing and processing them while keeping you updated when they're done.

LavinMQ Streams guide

Tutorial

Learn about and work with LavinMQ Streams

Imagine you need to track user activity in your application: clicks, page views, searches, and other events. The application needs to stream these events to a message broker in real time.

Part 1: An overview of LavinMQ streams

Long before streams were introduced, LavinMQ only supported one queue type - for the purpose of this guide, let’s call it the traditional queue.

Explore part 1 ->

Part 2: Publishing and reading from a stream

Client applications can interact with a Stream using an AMQP client library, just like with traditional queues in LavinMQ.

Explore part 2 ->

Part 3: Replay(time-travel) with offsets

In LavinMQ Streams, every message has a unique offset, which represents its position in the stream. Offsets serve a similar purpose as indexes in arrays.

Explore part 3 ->

Part 4: Stream truncation with retention policies

Data retention settings let you control when a Stream trims old messages—either after reaching a set size or age.

Explore part 4 ->

Part 5: Server-side offset tracking and stream filtering

This part will focus on server-side offset tracking and stream filtering.

Explore part 5 ->

Part 6: LavinMQ streams vs Kafka vs RabbitMQ streams

LavinMQ Streams, Kafka, and RabbitMQ Streams were all built for a similar use-case: high-throughput message streaming. But how do they compare?

Explore part 6 ->