18 pointsby kingcauchy7 hours ago3 comments
  • thefogman6 hours ago
    I know I should be saying congrats on the new engine, but selfishly I want to hear more about how you did it.

    So, the simulator only works if it knows what "correct" looks like and what kinds of failures to throw at the code, right? Who decided those two things? Was it the same agent that wrote the code? Were those human-written, or did they fall out of the formal specs?

    You had three things that could each say "this is right", the end-to-end tests, the formal model, and how the old Go version behaved. When they disagreed, which one did you trust? Did the test ever turn out to be the thing that was wrong?

    When the simulator caught something before release, was it usually the code that was wrong, or the definition of correct?

    Feels like there's some really useful insights about best practices for coding with agents. I wonder if the Bun team used a similar approach if they still would have switched.

    • kingcauchy4 hours ago
      We definitely were combining the rewrite with the opportunity to lay foundation for a more performant architecture, for instance index management and indexing autosharding could be resourced together in the new world with slightly different semantics in the apis. So in general if the traces disagree, we can count on the new version being correct (unless the spec was covered by a TLA spec)!

      At the moment the reverse is true though, the simulator and what we've captured as ground truth for the desired design has been refined enough in tests and specs that the code is often the one implicated, and most of the bugs have been in code related to caching correctness and are only exposed through soak testing.

      In opposition to Anthropic/Bun, we mostly used a hands-on approach to the rewrite and took the opportunity to capture the original design of Antfly into specs and any missing tests one subsystem at a time so we didn't strive to be as hands-off as "let Claude hill-climb on the tests". Especially since the system as a whole is far more dynamic and depends more on scalability, distributed systems stuff than Bun required!

  • kingcauchy7 hours ago
    We rewrote Antfly, which I introduced to the world a little bit back https://news.ycombinator.com/item?id=47414291, from Go to Zig.

    Thought it is interesting to juxtapose to the Bun rewrite from Anthropic and wanted to talk about why we went the other way! Would love to talk about our process or the technology!

    Benchmarks against are linked in the article but here they are again for posterity https://antfly.io/releases/v0.2

  • dovin6 hours ago
    Yeah open question what "perfect" search would even be, like would that just end up being indistinguishable from a kind of magical omniscience? And then there's "can I literally just find that one freaking slideshow from a while ago with that one client... or is it in Google Drive...?" And I really don't want the solution to be that we just plug everything into Claude