TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: FlowTracker – Track data flowing through Java programs

280 pointsby coekie8 months ago
FlowTracker, a Java agent that tracks data flowing through Java programs. It helps you understand where any program got its output from, what it means, and why it wrote it.<p>Watch the video or explore the live demo yourself, and read how it works at <a href="https:&#x2F;&#x2F;github.com&#x2F;coekie&#x2F;flowtracker">https:&#x2F;&#x2F;github.com&#x2F;coekie&#x2F;flowtracker</a>

17 comments

jpmonettas8 months ago
Cool! I wrote something on the same spirit but for Clojure, called FlowStorm <a href="http:&#x2F;&#x2F;www.flow-storm.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.flow-storm.org&#x2F;</a><p>For instrumentation, instead of an instrumenting agent it uses a fork of the official Clojure compiler (in Clojure you can easily swap compilers at dev) that adds extra bytecode. What is interesting about recording Clojure programs execution is that most values are immutable, so you can snapshot them by just retaining the pointers.<p>Edit: Since the OP demo is about exploring a web app for people interested in this topics I&#x27;m leaving a demo of FlowStorm debugging a web app also <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=h8AFpZkAwPo" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=h8AFpZkAwPo</a>
评论 #41533383 未加载
评论 #41530938 未加载
ysleepy8 months ago
This is incredibly cool.<p>I love how good the tooling is in the java&#x2F;jvm ecosystem. Last time I was this blown away was with jitwatch ( <a href="https:&#x2F;&#x2F;github.com&#x2F;AdoptOpenJDK&#x2F;jitwatch">https:&#x2F;&#x2F;github.com&#x2F;AdoptOpenJDK&#x2F;jitwatch</a> )<p>FlowTracker reminds me a little of taint analysis, which is used for tracking unvalidated user inputs or secrets through a program, making sure it is not leaked or used without validation.<p>search keywords are &quot;dynamic taint tracking&#x2F;analysis&quot;<p><a href="https:&#x2F;&#x2F;github.com&#x2F;gmu-swe&#x2F;phosphor">https:&#x2F;&#x2F;github.com&#x2F;gmu-swe&#x2F;phosphor</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;soot-oss&#x2F;SootUp">https:&#x2F;&#x2F;github.com&#x2F;soot-oss&#x2F;SootUp</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;feliam&#x2F;klee-taint">https:&#x2F;&#x2F;github.com&#x2F;feliam&#x2F;klee-taint</a>
BoppreH8 months ago
Blown away by the demo tracking an HTML element back to the <i>SQL statement that added that value to the database</i>.<p>I can totally see a future where tools like this are the first line of defense when troubleshooting bugs.
评论 #41531355 未加载
评论 #41531707 未加载
smartmic8 months ago
I am not really sure if I get the full picture and how it might be used - but it somehow reminds me of a Smalltalk environment where I can also inspect everything (all are objects and messages and you can trace back and interact with it those).
michaelmior8 months ago
Very cool! I love the demo video and I could definitely see how this would be useful when diving into an unfamiliar codebase.
hoten8 months ago
Years ago I experimented[1] with a similar concept (wanting something like JavaScript source maps, but for HTML). I didn&#x27;t manage to find the time to expand on it, but I think web developer tooling would really benefit from this sort of full-stack attribution.<p>Integration of any solution like this into existing frameworks feels like a big challenge.<p>[1] HTML Source Maps - <a href="https:&#x2F;&#x2F;github.com&#x2F;connorjclark&#x2F;html-source-maps">https:&#x2F;&#x2F;github.com&#x2F;connorjclark&#x2F;html-source-maps</a> <a href="https:&#x2F;&#x2F;docs.google.com&#x2F;document&#x2F;d&#x2F;19XYWiPL9h9vA6QcOrGV9NfkrPZ8r_irDb2C1mI1lqIQ&#x2F;edit" rel="nofollow">https:&#x2F;&#x2F;docs.google.com&#x2F;document&#x2F;d&#x2F;19XYWiPL9h9vA6QcOrGV9Nfkr...</a>
svieira8 months ago
This reminds me (in the best way possible) of the Eve-lang demos of debugging a program by simply asking &quot;why is &lt;the UI element&gt; <i>not</i> here?&quot; Fantastic work!<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=TWAMr72VaaU&amp;t=164s" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=TWAMr72VaaU&amp;t=164s</a> and <a href="https:&#x2F;&#x2F;witheve.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;witheve.com&#x2F;</a>
peterpost28 months ago
If I recall there was a paper on a similar tool that was used for finding SQL-injections dynamically in java programs. Is this the same tool?
评论 #41532522 未加载
SeriousM8 months ago
Once I had the vision to track data over the internet, like where came the image from, on which cdn was it. Or &quot;what did this string have seen from creation till it reached my screen&quot;. This is a step into this direction.
BadJo0Jo08 months ago
Thanks for this!<p>Been trying to get this work with VSCode with a project I&#x27;m trying to make sense of. Having to take a pause on it right now, but looking forward to getting it working and playing with it.
exabrial8 months ago
This is awesome! Reminds me of Java flight recorder!
yellow_lead8 months ago
This looks really cool, I think this could have saved me some time hunting bugs when I was working with Spring in the past.
hansoolo8 months ago
This is pretty cool! Do you think something similar is possible for c#, too?
评论 #41534434 未加载
KomoD8 months ago
That is really cool, really like that there&#x27;s a browser demo too
larusso8 months ago
Hmm would love to connect this to our gralde builds :)
评论 #41532688 未加载
apnew8 months ago
Very very impressive.
kitd8 months ago
Very impressive!