pull down to refresh
200 sats \ 2 replies \ @optimism 4 Jun \ on: What are you working on this week? meta
This weekend I had a long flight so for fun I started coding fast-agent prototypes. One of the conclusions from that exercise was that you shouldn't use AI for programmatic tasks. So now I'm coding a framework on top of NATS - as a lightweight Kafka replacement - that can execute code when needed, and call agents when desired.
I've made a little demo system that ingests RSS feeds, summarizes them with a local LLM and serves articles including their summaries over an API that follows this design: https://codeberg.org/optimism/sovereign-news-ai
I spent a fair amount of time looking at NATS when I was making a distributed logging system in golang a decade ago. Other internal teams were using Kafka (which was a special kind of monstrosity at the time with zookeeper and iirc paxos for consensus).
I don’t recall NATS having persistence then or we continued to be nuts about latency because we were planning on storing everything in the in-memory db that I was also leading at the time.
Cool to see NATS come up again!
reply
I've used Kafka a lot, but that was in enterprise settings and I'm looking for something that ultimately I could embed, so I decided to give this a go (lol). It works well for what I need it for thus far because I'm really using it as a message bus, but at-least-once delivery is a thing for my use-case.
NATS has JetStream, which is basically a file-based backend that you can use for persisted streams and k/v stores - so that's what I'm testing with right now. The one thing that I'm really missing in the python client implementation is reliable kafka-like consumer group tracking - it looks like I'm going to have to write some code for that, but that's the fun part.
reply