Building Kafka-style streaming in Go. Minimal, boring by design. Sane fault tolerance. Runs on PostgreSQL\BadgerDB.
Read the docs or check examples
github.com/makasim/flow...
Building Kafka-style streaming in Go. Minimal, boring by design. Sane fault tolerance. Runs on PostgreSQL\BadgerDB.
Read the docs or check examples
github.com/makasim/flow...
The state (or event in this context) is stored in an append-only log, which can be iterated over to apply any aggregation logic as needed. The order is defined once a state is committed. That said, it's currently quite far from what youβre describing with JSON schema, codegen, and executable logic.
Eventually, something like this could be built on top of flowstate. It already handles state machines, durable execution, and event streams. The rest is just layering on ingestion, aggregates, and a bit of glue.
Here's the code:
github.com/tailscale/go... -- a Go module cache virtual filesystem (FUSE or WebDAV) with deduping
Just published a very opinionated π₯ blog post on why I still recommend using Prometheus's native instrumentation libraries over @opentelemetry.io, especially if you mainly care about metrics and using them with @prometheus.io:
promlabs.com/blog/2025/07...
Check out the money transfer example:
github.com/makasim/flow...
Flowstate gives you a state machine with revision-based concurrency and atomic commit. Update multiple states, like sender & receiver accounts, in a single, consistent transition.
No races. No rollbacks. Just clean, reliable state flow.
#golang #eventdriven #statemachine
Make your Go app execution durable, resilient to panics, crashes, and OOMs. With the Flowstate, execution is guaranteed once the state is committed.
Example: github.com/makasim/flow...
#golang #workflowengine #automation
Marshaling domain structs straight into proto binary is just so convenient. Forget all the protoc, buf, endless generated code, and tedious domain-to-API conversions. Bonus: minimal allocations, simple, readable code.
VictoriaMetrics easyproto gives you wings
#golang #protobuf
π With this change, you can now build distributed computing networks on top of Flowstate.
The best part? The advertisement logic is powered by Flowstate itself. Nodes commit their state, others subscribe.
PR π github.com/makasim/flow...
#golang #distributedcomputing #workflow
Just turned my Raspberry Pi into a compact storage server:
π 4TB mirrored RAID for important stuff
π₯ 2TB dedicated to downloads
Amazing what this little board can handle. #homelab #selfhosted
This is DeskPi Super6c and a box for it from
wiki.deskpi.com/super6c/
I've set up Kubernetesβit wasnβt that hard, thanks to the outstanding tutorial from @kelseyhightower.com
. The topic is complex, but the tutorial makes following along a breeze. Learned a ton!
Next up: setting up node exporter and @victoriametrics.bsky.social
for monitoring.
There comes a time in every engineer's life when the urge to spin up their own Kubernetes cluster becomes irresistible.
The hard way of course. Here we go.
Thereβs no good reason to use 512 or 768-bit keys these days.
dmarcchecker.app/articles/cra...
It's easy to lose sight of the fact that, from a tech perspective, we're absolutely living in the future. Our CEO and co-founder @apenwarr.ca looks at just how powerful our modern machines are β and what that means for all of us
How can you ensure sequential reads from an append-only log in Postgres?
Insers are concurrent, making the order at the log's head unstable. Iβve found a solution: exclude all results within the current snapshot.