<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: A.D.</title>
    <description>The latest articles on DEV Community by A.D. (@themoah).</description>
    <link>https://dev.to/themoah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1646%2FhroOTp0I.jpg</url>
      <title>DEV Community: A.D.</title>
      <link>https://dev.to/themoah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/themoah"/>
    <language>en</language>
    <item>
      <title>klag just got a bunch better — here’s what’s new.</title>
      <dc:creator>A.D.</dc:creator>
      <pubDate>Sun, 07 Jun 2026 20:28:45 +0000</pubDate>
      <link>https://dev.to/themoah/klag-just-got-a-bunch-better-heres-whats-new-1pl3</link>
      <guid>https://dev.to/themoah/klag-just-got-a-bunch-better-heres-whats-new-1pl3</guid>
      <description>&lt;p&gt;Over half year ago I’ve open sourced klag, a lightweight Kafka consumer lag exporter. I’ve been working in data streaming systems and data infrastructure for over a decade and it’s an ultimate tool, I wish I had sooner.&lt;/p&gt;

&lt;p&gt;Klag (pronounced “kay-lag”) docker image has been downloaded over 2,000 times, repo has passed 70 ⭐️, contributions started flowing in. So what has been added recently?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dcb55ok9aumi8mbz5t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dcb55ok9aumi8mbz5t.jpg" alt="New Klag features" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Talk to your lag
&lt;/h3&gt;

&lt;p&gt;klag now ships an MCP server. Point your AI agent at it and just ask: "which consumer groups are falling behind right now?"&lt;br&gt;
No PromQL. No squinting at dashboards. Debugging a backlog at 2am is now a conversation instead of a query-writing exercise. This is the feature I'm most excited about — lag monitoring goes from read this to ask this.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Native builds — no JVM, instant startup
&lt;/h3&gt;

&lt;p&gt;There's now a native image build. Same exporter, compiled ahead-of-time, near-instant startup, smaller footprint.&lt;br&gt;
If klag is a tiny always-on sidecar whose whole job is to scrape offsets and emit numbers — and it should be — this is the build you want. No JRE dragging along.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Smarter group filtering
&lt;/h3&gt;

&lt;p&gt;You can now exclude groups, not just include them. Want &lt;code&gt;myapp-*&lt;/code&gt; but not the noisy canary groups? Done. Comma-separated globs, includes and excludes, exactly where you'd expect them.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 One-command install
&lt;/h3&gt;

&lt;p&gt;The Helm chart is on &lt;a href="https://artifacthub.io/packages/helm/klag/klag" rel="noopener noreferrer"&gt;ArtifactHub&lt;/a&gt; and the Grafana dashboard is public and ready to drop in. No git clone, no hardcoded datasource UIDs. helm install and you've got lag metrics flowing into Grafana in minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🙌 ...and it's not just me anymore
&lt;/h3&gt;

&lt;p&gt;People are showing up with PRs that fix real edges in real clusters — full &lt;code&gt;KAFKA_*&lt;/code&gt; passthrough, older-broker compatibility, more accurate time-based lag, and more. That's exactly the feedback loop I wanted.&lt;/p&gt;

</description>
      <category>kafka</category>
      <category>observability</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Introducing klag: The Kafka Lag Exporter I Always Wanted.</title>
      <dc:creator>A.D.</dc:creator>
      <pubDate>Tue, 27 Jan 2026 20:32:13 +0000</pubDate>
      <link>https://dev.to/themoah/introducing-klag-the-kafka-lag-exporter-i-always-wanted-57dp</link>
      <guid>https://dev.to/themoah/introducing-klag-the-kafka-lag-exporter-i-always-wanted-57dp</guid>
      <description>&lt;p&gt;TL;DR: please welcome &lt;a href="//github.com/themoah/klag"&gt;github.com/themoah/klag&lt;/a&gt; — a new Kafka lag exporter with multiple sink options and even more visibility into your Kafka consumers.&lt;/p&gt;

&lt;p&gt;Kafka lag exporter was very cool. I couldn't imagine running serious kafka-based workload without it. And then the repo got archived. So I had no other choice: I had to build my own kafka lag exporter. Better one. With all the features that I was missing.&lt;/p&gt;

&lt;p&gt;It's fast, lightweight and very extendable, built atop Java 21, vert.x library and micrometer. It's already supporting otlp, datadog and prometheus.&lt;/p&gt;

&lt;h3&gt;
  
  
  So what is a kafka lag?
&lt;/h3&gt;

&lt;p&gt;Basically, it’s the number of records (messages) that haven’t been processed by a consumer group — the downstream service. In general, you expect it to be zero or close to it. If it’s growing fast — something is wrong. Decreasing lag is the best indicator that you’ve successfully identified and fixed the issue.&lt;/p&gt;

&lt;p&gt;Simple, right?&lt;/p&gt;

&lt;p&gt;But let’s not forget: scale and distributed systems can make even the simplest problem incredibly hard. Processing metrics in a timely manner on huge clusters with hundreds of brokers, thousands of consumer groups, and millions of partitions is no joke.&lt;/p&gt;

&lt;h2&gt;
  
  
  The missing features.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lag velocity.
&lt;/h3&gt;

&lt;p&gt;Measuring the speed of lag change (growth or decline) is the key. Finding the right threshold, based on amount of records is a long story of trial and error. Lag has been growing without control for last period of time? That's really requires attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hot partitions.
&lt;/h3&gt;

&lt;p&gt;One partition can generate lots of headache, skew in processing, late data and other bad impacts. 100+ partitions topic might have an average lag under the threshold, but a single outlier partition can break your data pipeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stale groups.
&lt;/h3&gt;

&lt;p&gt;Reduce the noise. Inactive groups require cleanup, which can be very tricky.&lt;/p&gt;

&lt;h3&gt;
  
  
  Splitting the requests.
&lt;/h3&gt;

&lt;p&gt;Huge cluster with thousands of topic-partitions and tens (or hundreds) of consumer groups create some enormous amount of metrics, which will overload your Kafka (and Zookeeper if you are still using it) cluster. Chunking request into mini sub-groups reduces the load on the cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next ?
&lt;/h2&gt;

&lt;p&gt;Planned next features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced filtering: whitelist (or blacklist) topics and/or consumer groups.&lt;/li&gt;
&lt;li&gt;Support running with multiple metrics reporters.&lt;/li&gt;
&lt;li&gt;More metrics sinks - stasD, cloudwatch and others.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feature requests and feedback is always welcome. &lt;br&gt;
(If you are running klag in production - i'd love to share your story or add a link to the Readme).&lt;/p&gt;

</description>
      <category>kafka</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Hi, I'm A.D.</title>
      <dc:creator>A.D.</dc:creator>
      <pubDate>Sun, 15 Jan 2017 15:42:35 +0000</pubDate>
      <link>https://dev.to/themoah/hi-im-ad</link>
      <guid>https://dev.to/themoah/hi-im-ad</guid>
      <description>&lt;p&gt;I have been coding for 5+ years.&lt;/p&gt;

&lt;p&gt;You can find me on Twitter as &lt;a href="https://twitter.com/themoah" rel="noopener noreferrer"&gt;@themoah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I live in Tel-Aviv.&lt;/p&gt;

&lt;p&gt;I work for ClickTale&lt;/p&gt;

&lt;p&gt;I mostly program in these languages: Scala, C#, Python, JS.&lt;/p&gt;

&lt;p&gt;I am currently learning more about ML.&lt;/p&gt;

&lt;p&gt;Nice to meet you.&lt;/p&gt;

</description>
      <category>introduction</category>
    </item>
  </channel>
</rss>
