I've written what monoblok does several times over in Go and Python over the years, probably badly. It would have been nice to clean up my @nats_io firehose subjects with a few rules.
https://t.co/RUR3iKWFpN
monoblok accepts publishes from existing NATS clients and exposes useful subjects, saving you from having to write and deploy the same cleanup/republish services.
I've been messing around building a matching engine in C that attempts to distill the essence sensibly. It's a learning repo, not a thing to use.
https://t.co/5N7l88MQC4
#lmax#c#matchingengine#limitorder#disruptor
I've long been interested in the LMAX architecture. It still receives a lot of attention due to this Fowler article back from 2011: https://t.co/B2JHlFqnTu
Just because it worked once in an environment with a specific set of constraints does not make it a general purpose silver bullet Just embrace the Good Ideas. But what are the good ideas? This requires a bit of thought.
monoblok can now consume (and catch up) from @nats_io JetStream streams. It observes a virtual clock so stream date is used. May add event time from JSON payload and/or application header. Hooks in to existing export machinery so replay emissions can be optionally exported back.
tinyblok can now be flashed from Chrome https://t.co/SLxxLThvTk
In setup mode just join the TINYBLOK wifi network. A captive page pops up, allowing you to select your wi-fi network and target NATS environment.
#iot#nats#esp32
Writing a monoblok patchbay by hand is already simple.
Describing it to an LLM is faster: give it the shape you want your data in and get back a setup (with test publisher) that publishes clean/actionable values to your @nats_io cluster.
https://t.co/KrelTu74DZ
The same telemetry cleanup code gets rewritten in every subscriber.
monoblok moves it into the broker with a simple DSL
raw → round → squelch → clean
https://t.co/KrelTu74DZ
#nats#ziglang#streamprocessing
Tinyblok on ESP32 dev board can now respond to @nats_io req/reply. Useful for pings, queries and hardware actuation. Also great for querying device fleets: if n boards all subscribe to the same subject, the request is a broadcast and n boards (should) reply.
https://t.co/cIIXv0WB5v now uses nats.zig instead of nats.c - also zig 0.0.16.
Quite a journey; addresses a gap nats.zig has on Windows.
https://t.co/0S8LfpDx9h
#nats#ziglang
monoblok is a tiny pubsub broker with a conditioning streaming DSL. it cleans and shapes local streams and then exports the results directly to a NATS cluster, or through a NATS leaf. Conditioning at the edge, analysis in the cloud. https://t.co/sQv2WThQnO
@nats_io@every Subject sampling = server-side downsampling.
Sensor pushing data every second? Schedule a snapshot of the *latest* value every 5 minutes and source it into another stream.
Less data on the wire to your cloud, no client-side aggregation logic.
https://t.co/YUCNP9eDdS