Powered by AppSignal & Oban Pro

Rheo Livebooks

notebooks/rheo_demo.livemd

Rheo Livebooks

Section

Welcome. These notebooks are a hands-on tour of Rheo — an embedded Elixir/OTP library for consumer groups over a searchable event log.

You do not need to read HexDocs first. Start with Quickstart, then follow the path that matches what you care about.

How to run

Open this folder from a clone of the repo so notebooks can use the path dependency ({:rheo, path: ...}). Hex {:rheo, "~> 1.0"} works for standalone Livebook. Evaluate cells top to bottom.

livebook server notebooks/
# or jump straight in:
livebook server notebooks/quickstart.livemd
# ops surface:
livebook server notebooks/ops.livemd
# real LiveDashboard page via Phoenix Playground:
livebook server notebooks/live_dashboard.livemd
Notebook Story
Quickstart From zero to “I published, fetched, and ACKed an event”
Concepts & Overview Why leases, groups, search, replay, and frontiers exist
Ops: inventory, lag, DLQ Inspect APIs — list, health, dead letters
LiveDashboard (Playground) Real Rheo.LiveDashboard.Page via Phoenix Playground
GenStage, Flow & Broadway Rheo owns delivery; pipelines own topology
ETS, Mnesia, Mongo, Redis, SQLite, PostgreSQL Same API, different durability and ops trade-offs

Docker? Not for Quickstart, Concepts, Ops, LiveDashboard, or Pipelines (they use ETS). The Backends notebook also runs Mnesia without Docker; Mongo / Redis need docker compose up -d, Postgres needs RHEO_POSTGRES_URL.

What Rheo is (and is not)

Rheo is not a message broker you deploy beside your app. It is a library you supervise inside the BEAM: streams, groups, leases, and a portable query model backed by a database (or ETS for tests).

Delivery is at-least-once. Handlers should be idempotent on event.id.

v0.10+ adds inspect ops (list_streams, group_info, dead_letters, Mix tasks, optional LiveDashboard) without a control plane — see ops.livemd and ADR 027.

v0.9 added optional Redis Streams ({:redix, "~> 1.5"}) with Model C receipts — same Consumer API as ETS/Mongo/Ecto.

Further reading: Quick Start · Ops · 0.9 → 0.10 migration