monoblok speaks NATSit cleans up noisy subjects in flight, so subscribers only see useful messages.

monoblok is a NATS-native message processor for message transformation and routing. It can sit in front of existing publishers, import existing subjects already in NATS, or run as a standalone NATS core compatible broker.

monoblok speaks the NATS core protocol, is a tiny process written in boring C that can sustain millions of msgs/sec on a single core. For ESP32 telemetry, tinyblok brings the same idea to firmware. Fix noisy raw streams once, not in every subscriber: rounding, deadbands, squelch, aggregation, moving averages, OHLC, and derived alerts.

A simple configuration controls everything: via the patchbay DSL. monoblok uses these rules to send processed outputs to clean, actionable subjects. Read more about why monoblok exists.

Try it now

Publish a sensor reading, watch a live monoblok process stream the derived subjects back over SSE, or read the latest cached stable value over HTTP. The public NATS demo runs on that same real monoblok, so this is not a mocked browser demo: you can also run nats pub in a terminal and see the subjects flow through here.

Ready

1. Subscribe

2. Publish

3. Observe output

4. Grab the latest value for a subject

The demo.edn rules listen on demo.sensors.*. Values over 40 produce .overload; crossings over 50 produce .spike and .count. The latest value cache exposes the stable temperature at /latest/demo/sensors/temp/stable. YAML configuration is also accepted; see demo.yml.

Demo guide

Get monoblok

curl -fsSL https://raw.githubusercontent.com/lexvicacom/monoblok/main/scripts/start.sh | bash
docker run --rm -p 14222:14222 ghcr.io/lexvicacom/monoblok:latest --port 14222

© 2026 Alex Reid / Lexvica Limited. monoblok and tinyblok are MIT licensed and supported by the author.
Want to try monoblok on real streams? I can help scope and deliver a proof of concept. alex@lexvica.com